乱码问题解决
乱码问题解决2010-05-15 21:42
消除邮件乱码
有很多朋友都被Windows系统中各式各样的乱码所困惑。特别是收到的一些十分重要的邮件程序、文件时会遇到乱码,登上港台网站时会看到乱码,还有原先显示正常的Windows桌面、菜单中的汉字形如天书,本来显示正常的各种应用程序、游戏中的汉字也成了乱码等等,真的很是急人误事!那怎么办呢?
汉字乱码分类
汉字乱码现象有4种类型:
1.文本乱码:是Windows系统显示乱码,如:菜单、桌面、提示框等。这是由于注册表中有关字体部分的设置不当引起的;
2.文档乱码:是各种应用程序、游戏本来显示中文的地方出现乱码。这种乱码形成的原因比较
复杂,有第1类的乱码原因,也可能是软件中用到的中文动态链接库被英文动态链接库覆盖所造成的;
3.文件乱码:主要是指邮件乱码;
4.网页乱码:是由于港台的繁体中文大五码(BIG5)与大陆简体中文(GB2312)不通用而造成的。
消除各类乱码的方法
一系统乱码的消除方法
这类乱码是由于在Windows注册表中,关于字体部分配置不正常造成的,即使你用内码翻译软件处理也不会消除这类乱码。那怎么办呢?请跟我来:
方法一:一台与你的Windows版本相同且显示正常的机器,依下列步骤进行:
1.在正常机器上选择"开始"→"运行",在对话框中键入"regedit",打开注册表编辑器;
2.请你将光标定位到"HKEY_LOCAL_MACHINE\system\CurrentControlSet\Control\Fontassoc",然后选择"注册表"→"导出注册表文件",再选择"分支",导出该分支注册表信息到文件(如ZT.REG)中;
3.把ZT.REG文件拷贝到你那显示乱码的机器上,方法是:在显示乱码的机器上运行"regedit",打开注册表编辑器,选择"注册表"→"导入注册注册表",把ZT.REG文件导入注册表中即可。
方法二:如果你不到一台与你的Windows版本相同且显示正常的机器,则需要手工恢复字体部分的注册表
项,其步骤是:
1.首先在显示乱码的机器上选择"开始"→"运行",在对话框中键入"regedit",打开注册表编辑器;
2.选择"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Fontassoc",正常情况下,会有Associated DeaultFonts、Associated CharSet两个文件夹,其正确的内容应是:
子目录内容
中文Win98
中文Win98(OEM版)
中文Win2000 Associated CharSet ANSI(00)="yes"
GB2312(86)="yes"
DEN(FF)="yes"
SYMBOL(02)="no"
ANSI(00)="yes"
GB2312(86)="yes"
乱码文字生成
OEM(FF)="yes"
SYMBOL(02)="no"
ANSI(00)="yes"
OEM(FF)="yes"
SYMBOL(02)="no"
Associated DefaultFonts AssocSystemFont="f"
FontPackageDecorative="宋体"
FontPackageDontcare="宋体"
FontPackageModern="宋体"
FontPackageRoman="宋体"
FontPackageScript="宋体"
FontPackageSwiss="宋体"
AssocSystemFont="f"
FontPackage="新宋体"
FontPackageDecorative="新宋体"
FontPackageDontcare="新宋体"
FontPackageModern="新宋体"
FontPackageRoman="新宋体"
FontPackageScript="新宋体"
FontPackageSwiss="新宋体"
3.当出现汉字乱码时,上述两个文件夹中的内容就会不完整,有的没有Associated CharSet文件夹或其中的内容残缺不全;有的Associated DefaulFonts下的内容残缺。如果遇到这种情况怎么办呢?其实你只要打开注册表编辑器,在"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Fonassoc"下,根据以上的正确内容恢复即可。
二应用程序、游戏乱码的消除方法
明明是中文软件,可显示界面上却出现乱码,这可能是由于注册表中关于字体设置的信息不正确地被改变而造成的,一般是因为软件的中文链接库被英文链接库覆盖而引起的,这种现象经常发生在用微软开发工具,例如VB、VC开发的中文软件上。在这类软件中,菜单等显示界面上的汉字都是受一个动态链接库".DLL文件"控制,而软件的这个动态链接库一般是安装在Win 98/2000的System目录下的,如果以后你安装了某个英文软件也使用同名的动态链接库,则英文软件的动态链接库就会覆盖掉你原先的Windows\System下的中文软件的动态链接库。这样,当你运行中文软件时就会调用英文的动态链接库,因此出现乱码。解决办法是重新安装中文软件,恢复中文动态链接库即可。
三乱码的消除方法
1.造成乱码的原因很多,主要有以下几个方面:
(1)操作系统语种不同。对于中文,如果收信方所用的操作系统是英文环境而且没有外挂中文系统或未切换为中文编码方式,也会无法看到中文,只见到乱码。所有的双字节字
符(如中文简/繁体的GB和BIG5码及日文的JIS、EUC和朝鲜文的KSC码等)在非本语种操作系统下都会出现乱码。同样在中文简体的GB码环境下看其他双字节字符时也只能看到乱码。
解决方法:安装多语言支持包或使用多内码显示平台,对收到的邮件,根据其使用的语种切换到相应的编码方式即可消除乱码。
(2)邮件服务器不支持8位(非ASCII码格式)。传输邮件的传输机制或邮件编码的不同,可能造成邮件服务器不支持8位(非ASCII码格式)传输而形成邮件乱码。例如直接发送中文或二进制等非ASCII码格式的邮件(如中文双字节文件、图片文件.jpg、可执行文件.exe或压缩文件.zip等二进制文件)时,邮件服务器有可能无法处理,便把信件中每个字符的第8位都过滤掉,从而造成邮件信息的失真或损坏,在收到邮件时就是一堆乱码。
解决方法:在发送8位格式的文本文件时,必须事先进行编码,将文件转换为7位ASCII码或更少位数的格式,然后才能保证文件的正确传送。收件人收到7位或更少位格式的邮件后,可以再转换为8位的格式,这样就可避免乱码。
(3)收发端使用的E-mail软件和设置不同。一般E-mail软件的"附件"功能都可以自动对信件先
进行编码,然后再送出。这样,只要收信人使用E-mail软件就能区别信件的编码方式,就可以自动将信件解码。然而由于收发件人所用的E-mail软件默认配置不同或收发件人自己定制的一些选项不同,所以在收到编码的信件后,系统不一定能识别出信件所用的编码方法,自然无法自动解码,这样就会出现乱码。
解决方法:
①可以用WinZip+IE来解码,请你把乱码邮件的内容,拷贝到剪贴板中,然后将其粘贴到记事本中,存为文本文件(例如YJ.txt),再将其后缀改为.uue(改为YJ.uue),点击此文件,会启动WinZip,然后启动IE,把WinZip中的文件拖到IE窗口中,就会显示邮件原来的内容,而不会看到乱码。
②可以根据邮件中的关键字符判断编码方法,选取合适的解码软件进行解码。邮件的编码方式主要有:UUENCODE、Base64 encode、QPencode、BINHEX等。UUENCODE:这是UNIX环境下使用的编码方式,目前已经很少用,大体格式为:
begin 644 kk.zip M1G)O;2!I;&EN+F)B3T!C(VEE+FYC='4N961U+G1W(%=E9"!.;W8@(#8@,3(ZM,SDZ,C4@,3DY-@I296-E:79E9#H@9G)O;2!F;&%B;6%I;".end
特征:乱码前面含有"begin xxx",后面是编码前的原始文件名(如kk.zip),接着是已经过编码的信件内容(如上述的乱码部分),最后一行为"end"。
解码办法:可用BECKY!EUDORA等E-mail软件,选择编码中相应的选项就可解码,也可以在E-mail软件中保存乱码邮件,存为后缀为".UUE"格式的文件,然后用Winzip解码展开。解码后就会消除乱码。