Chinaunix首页 | 论坛 | 博客
  • 博客访问: 323922
  • 博文数量: 122
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 1340
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-03 20:40
个人简介

智者,既能奋发不休,又能尽人事,顺天命

文章分类

全部博文(122)

文章存档

2014年(39)

2013年(46)

2012年(12)

2011年(3)

2010年(20)

2009年(2)

我的朋友

分类: LINUX

2010-11-08 13:41:44

Linux操作系统下终端乱码的终极解决方案

发布时间:2008.03.03 06:09     来源:赛迪网    作者:korn
原文链接


        初入linux的程序员们,经常会受到乱码的问候。可谓“始乱终弃”。因为乱码,并且最终放弃了linux的不在少数。好吧,言归正传,先看看各类乱码是怎么形成的。

 

中文字符乱码

这种情况一般是安装了中文控制端,但没有启用中文应用造成的。只需要启动相应软件即可,如zhcon。或者是启用了相应软件,但字符集不对,需设置相应字符集,例如export LANG=zh_CN.UTF-8

 

ORACLE安装界面乱码

虽说ORACLE支持多国语言,会根据环境变量自动选择字符集,但中文安装好像还有问题,不过10.2以后的版本好像没有该问题了,具体可以执行命令export LANG=en_US来设置为英文字符集环境

 

英文字符乱码

一般该字符乱码多出现在cat了二进制的文件时,因为二进制文件中多有控制码,会导致终端界面乱码,通常解决方法是用reset终端复位命令解决问题

 

其他伪终端乱码

有时是通过SSH进入远程LINUX服务器时,cat一个core文件,并且用reset命令都不能成功,怎么办?很简单,看以下试验,首先cat一个python的编译文件

 

 

oracle@linux-suse:~> cat fibo.pyc
m?
{?鯡c@sd
Zd
ZdS(cCs:d\}}x'||jo|G|||}}qWdS(Nii(ii(tatbtn(RRR((tfibo.pytfibs

cCsIg}d\}}x0||jo"|i||||}}qW|S(Nii(ii(tresultRRRtappend(RRRR((Rtfib2 s
N(RR(RR((Rt?s oracle@linux-suse:~> VT102VT102
\-bash: VT102VT102: command not found
oracle@linux-suse:~>

 

在SSH终端上看到是的乱码,提示符都是乱的,可以用以下命令恢复

 

 

 

oracle@linux-suse:~> tput sgr0

 

乱码问题产生的原因是SSH的问题,因为在其他终端下,cat用样一个文件,不会产生乱码,于是试验乱码产生的原因

 

 

oracle@linux-suse:~> ^N

 

只要用ctrl+v,ctrl+n就使用屏幕乱码,当然恢复后再试验

 

 

oracle@linux-suse:~> echo -e '\xe'

 

屏幕再次乱码,好,再恢复

 

 

oracle@linux-suse:~> echo -e '\xf'

 

以上是需要盲打的,因为屏上看到的是乱码,最终问题产生的原因是十六进制字符E产生的,解决也很简单,十六进制字符F即可。

阅读(717) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~