新闻 | 天津 | 民生 | 广电 | 津抖云 | 微视 | 读图 | 文娱 | 体育 | 图事 | 理论 | 志愿 | 专题 | 工作室 | 不良信息举报
教育 | 健康 | 财经 | 地产 | 天津通 | 旅游 | 时尚 | 购物 | 汽车 | IT | 亲子 | 会计 | 访谈 | 场景秀 | 发布系统

"津云"客户端
  您当前的位置 :北方网 > IT浪潮 > 软件 > 新品show 正文
关键词:

平定汉字乱码


http://www.enorth.com.cn  2001-01-17 00:00

  我们在使用电脑时,经常会遇到乱码:例如登上港台网站时会看到乱码,打开E-mail时也会看到乱码,更为严重的是原先显示正常的Win9X/Win2K桌面、菜单中汉字一夜之间“面目全非”,本来显示正常的各种应用程序(包括游戏)中汉字也成了乱码!乱码给我们带来了太多的烦恼,告别乱码是我们共同的愿望!

  

  一、汉字乱码现象的分类

  汉字乱码现象大致可分成四类:网页、文本、文档和文件乱码。第一类是由于港台的繁体中文大五码(BIG5)与大陆简体中文(gb2312)不通用造成的;第二类是Win9X/Win2K系统(菜单、桌面、提示框)显示乱码,这是Win9X/Win2K注册表中有关字体的部分设置不当引起的;第三类是各种应用程序(包括游戏)本来显示中文的地方出现乱码,形成原因比较复杂,有第二类的乱码原因,也可能是软件用到的中文动态链接库被英文动态链接库覆盖造成的;最后一类是邮件乱码。

  

  二、消除汉字乱码

  针对以上几种乱码现象,我们来分类介绍消除乱码的方法。

  

  (一)、网页、文本和文档文件乱码的消除

  网页乱码是浏览器(如IE等)对HTML网页解释时形成的。如果在网页的代码中有形如:〈HTML〉〈HEAD〉〈META CONTENT=“text/html;charset=ISO-8859-1”〉〈/HEAD〉……〈/HTML〉的语句,浏览器在显示此页时,就会出现乱码。因为浏览器会将此页语种辨认为“欧洲语系”。解决的办法是将语种“ISO-8859-1”改为gb2312,如果是繁体网页则改为BIG5。

  另一种解决办法是不修改网页代码,事先为浏览器安装多语言支持包(例如在安装IE时要安装多语言支持包),这样在浏览网页出现乱码时,就可以在浏览器中选择菜单栏下的“查看”/“编码”/“自动选择”/简体中文(gb2312),如为繁体中文则选择“查看”/“编码”/“自动选择”/繁体中文(BIG5),其它语言依此类推选择相应的语系,这样可消除网页乱码现象。

  

  还有一种解决办法是利用多内码显示平台来转换内码。常用多内码显示平台有:

  “南极星”:可自动识别GB码、BIG5码,用简体或繁体显示,并能做到同屏显示GB码和BIG5码,对日文、韩文亦能正确显示。下载地址:http:// www.njstar.com

  “四通利方”:支持了包括GB、BIG5、HZ、日韩编码、UNICOD等17种汉字内码,也开始支持预览功能,并且增加了诸如“增删空格”、“插入禁排空格”等小而有用的功能,实在是网友的好帮手。下载地址:http:// www.srsnet.com

  “MagicWin 98”:可真正的同屏显示不同内码,即GB码和BIG5码两者共存、都能正常显示。它支持GB、HZ、BIG5、JIS、EUC、SJIS、KSC、UTF7和UTF8等格式;支持Netscape Communicator 4.X、Internet Explorer 和Office 等软件;支持在多个窗口中同时查看不同内码的文档的超级多内码显示平台。下载地址:http:// www.itwin.com.my/magicwin

  网页无乱码保存的方法是:用浏览器打开网页时,在“查看”/“编码”中选择“自动选择”,存盘时保存类型选“web页”,编码选择“UNICOD”,这样保存过的网页再次打开时,在浏览器菜单“查看”、“编码”中不管选择简体中文(gb2312)、简体中文(HZ)还是UNICODE(UTF-8)或繁体中文(BIG5),最终显示都不会出现乱码。

  文本、文档文件乱码,一般是繁体中文显示在简体中文系统下或者相反情况造成的。只要把原本是繁体的内码转换为简体内码(或者相反),就可消除乱码。

  Word2000能胜任这类工作,例如要把繁体中文转换为简体中文,方法是:选择要转换内码的文件,在弹出的对话框中(如图1),选择“其它编码”中的“繁体中文(BIG5)”一项,打开此文件时就不会出现乱码。无乱码保存方法:在保存时选择“文件”中的“另存为”,先存为“Word文档,存盘后打开再存为纯文本等其它格式;您也可以用Word2000的“中文简繁转换”工具实现无乱码保存,方法是在菜单栏中选择“工具/语言/中文简繁转换”,内码转换后再保存。

  WPS2000也能转换内码,支持gb2312、BIG5、GBK等三种主要的汉字编码,并可在输出RTF、TXT、HTM格式文件时对内码进行转换。

  除此之外,消除这类乱码还可用内码转换工具,对BIG5(繁体中文)和gb2312(国标码、简体中文)进行相互转换来实现。常用的内码转换工具有:

  “飓风简繁通”:中文自由软件,纯“绿色软件”,不用安装,把300多K的压缩包解开到硬盘的任意一个目录即可使用。软件支持普通文本、剪贴板上内容、磁盘文件的BIG5→GB或GB→BIG5内码转换,速度很快。该软件特有“网站转换”功能:可在几分钟之内全自动的为您的网站生成一个BIG5码的版本。当然,您什么时候从港台地区抓个网站下来,也可以先来个BIG5→GB的转换,然后轻轻松松慢慢欣赏。下载地址:http://renliang.yeah.net

  “内码转换大师”:能够以灵活的方式选取大批文件,同时进行转换。选取的文件在转换前后随时可以直接查看其内容。转换是直接在原文件上进行的,省去了选择目标目录、多次拷贝等繁琐的操作。独家具备:对于HTML文件,能够自动转换其汉字字符集定义,使之在浏览器中浏览时自动按照转换后的代码集中显示。目前支持gb2312以及BIG5两种代码集。下载地址:http://rchan.yeah.net

  “华语通”:免费软件,支持BIG5<->GB双向转换,支持文本、Web页、RTF等格式,可批量转换。下载地址:http://lanny.yeah.net

  “TEXT ROBOT”:支持BIG5<->GB、BIG5→GBK、BIG5→GBK简体、GBK繁体→GBK简体等多内码转换,可将文本格式转换为Web页,能进行批量内码转换。下载地址:http://denvor.yeah.net

  “两岸通汉字内码转换器”:免费软件,支持GB<->BIG5、BIG5<->GB的双向转换,可以批量转换,还可直接转换剪贴板内的文本。在转换文件之前,允许你先通过预览窗口实现预览转换结果。下载地址:http:// www.njstar.com

  

  (二)、Win9X/Win2K系统乱码的消除

  这类乱码是由于注册表中关于字体部分配置不正常造成的,即使您用内码翻译软件如四通利方、南极星、Magic Win98、两岸通等处理也不会消除。解决办法是:恢复注册表中关于字体部分设置。

  如有一台Win9X/Win2K版本相同且显示正常的机器,则可依下列步骤进行恢复:

  1.在正常机器上选择“开始”/“运行”,在对话框中键入“REGEDIT”,打开注册表编辑器;

  2.光标定位到“HKEY_LOCAL_MACHINE\ SYSTEM\CURRENT CONTROL SET\CONTROL\ FONTASSOC”,选择“注册表/导出注册表文件”,再选择“分支”,导出该分支注册表信息到文件(如LI.REG)中(如图2);

  3.把LI.REG文件Copy到显示乱码的机器上,在显示乱码机器上运行REGEDIT,选择“注册注册表”/“导入注册注册表”,把LI.REG文件导入注册表中。

  如没有Win9X/Win2K版本相同且显示正常的机器,则需要您手工恢复字体部分注册表项,按以下步骤:

  1.在乱码机器上打开REGEDIT(REGEDIT.EXE在WINDOWS目录下);

  2.找到“HKEY_LOCAL_MACHINE\SYSTEM\ CURRENT CONTROL SET\CONTROL\FONTASSOC”,正常情况下,会有ASSOCIATED DEFAULTFONTS、ASSOCIATED CHARSET两个文件夹,其正确的内容为:

  子目录内容

  中文Win98

  中文Win98(OEM版)

  中文Win2K

  AASOCIATED 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 DEFAULT

  FONTS

  AssocSystemFont=“simsun.ttf”

  FontPackageDecorative=“宋体”

  FontPackageDontcare=“宋体”

  FontPackageModern=“宋体”

  FontPackageRoman=“宋体”

  FontPackageScript=“宋体”

  FontPackageSwiss=“宋体”

  同左栏

  AssocSystemFont=“simsun.ttf”

  FontPackage=“新宋体”

  FontPackageDecorative=“新宋体”

  FontPackageDontcare=“新宋体”

  FontPackageModern=“新宋体”

  FontPackageRoman=“新宋体”

  FontPackageScript=“新宋体”

  FontPackageSwiss=“新宋体”

  3.当出现汉字乱码时,上述两个文件夹中内容就会不完整,有的没有ASSOCIATED CHARSET文件夹或其中内容残缺不全;有的ASSOCIATED DEFAULTFONTS下内容残缺。只要用REGEDIT在“HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\ CONTROL\FONTASSOC”下,根据以上正确内容恢复即可。

  

  (三)、应用程序(包括游戏)乱码的消除

  中文软件菜单等显示界面上出现乱码,可能是由于Windows注册表中关于字体设置的信息不正确地改变而造成的,这时候可以用上述第2点介绍的办法去解决。

  如果用上法解决不了,那就是因为软件的中文链接库被英文链接库覆盖而引起的,这种现象经常发生在用微软开发工具例如VB、VC开发的中文软件上,这类软件中,菜单等显示界面上的汉字都是受一个动态链接库(DLL文件)控制,而软件的这个动态链接库一般安装在Windows的System目录下,如果以后安装了某个英文软件也使用同名的动态链接库,则英文软件的动态链接库就会覆盖WINDOWS\SYSTEM下的中文软件的动态链接库,这样,运行中文软件时就会调用英文的动态链接库,因此出现乱码。解决办法是重新安装中文软件,恢复中文动态链接库即可。

  

  (四)、邮件乱码的消除

  1.邮件乱码原因及其排除

  邮件乱码的形成原因很多,主要有以下几个方面:

  (1)邮件服务器不支持8位(非ASCII码格式)

  传输邮件传输机制或邮件编码的不同,可能造成邮件服务器不支持8位(非ASCII码格式)传输而形成邮件乱码。例如直接发送中文或二进制等非ASCII码格式的邮件(如中文双字节文件、图片文件.jpg、可执行文件.exe或压缩文件.zip等二进制文件)时,邮件服务器有可能无法处理,便把信件中每个字符的第8位都过滤掉,从而造成邮件信息的失真或损坏,在收到邮件时就是一堆乱码。

  对策:在发送8位格式的文本文件时,必须事先进行编码,将文件转换为7位ASCII码或更少位数的格式,然后才能保证文件的正确传送。收件人收到7位或更少位格式的邮件后,可以再转换为8位的格式,这样就可避免乱码。

  (2)收发端使用的E-mail软件和设置不同

  一般E-mail软件的“附件”功能都可以自动对信件先进行编码,然后送出。这样只要收信人使用的E-mail软件(如Outlook、Netscape E-mail等)能区别信件的编码方式,就可以自动将信件解码。然而由于收发件人所用的E-mail软件默认配置不同或收发件人自己定制的一些选项不同,所以在收到编码的信件后,系统不一定能识别出信件所用的编码方法,自然无法自动解码,这样就会出现乱码。

  对策:可以用Winzip+IE来解码,方法是:把乱码邮件的内容,拷贝到剪贴板中,然后将其粘贴到记事本中,存为文本文件(例如LI.txt),再将其后缀改为.uue(改为LI.uue),点击此文件,会启动Winzip,然后启动IE,把Winzip中的001.txt文件拖到IE窗口中,就会显示邮件原来的内容,而不会看到乱码。

  也可以根据邮件中的关键字符判断编码方法,选取合适的解码软件进行解码。

  邮件的编码方式主要有:UUENCODE、Base64 encode、QP-encode、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;"YF;&%B+F9U:FET……

  end

  特征:乱码前面含有“begin xxx”,后面是编码前的原始文件名(如kk.zip),接着是已经过编码的信件内容(如上述的乱码部分)最后一行为“end”。

  解码办法:可用BECKY!EUDORA等E-mail软件,选择编码中相应的选项就可解码,也可以在E-mail软件中保存乱码邮件,存为后缀为“.UUE”格式的文件,然后用Winzip解码展开。解码后就会消除乱码。

  MIME/BASE64 encode:该编码方式将3个字节(8位)用4个字节(6位)表示,由于编码后的内容是6位的,因此可避免第8位被截掉,大体格式为:

  MIME-Version:1.0

  Content-Type:text/plain; charset="us-ascii"

  Content-Transfer-Encoding:base64

  Status:R

  SGmhQbF6pm6hSafapmK69Lj0pFexb6q+sXqsT6Skp OWrSKXzsN3DRLFNrmGhQQ0Kq1+sTqq6vdCx

  0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……

  特征:乱码前一般有如下几部分“信头”:Content-Type(内容类型)、charset(字符集)和Content-Transfer-Encoding(内容传输乱码方式)。

  解码办法:用E-mail软件,选择编码中Base64 选项就可解码,解码后会消除乱码。

  QpencodeQP:全称“Quoted-Printable Content-Transfer-Encoding”。因为这种格式邮件的内容都是ASCII字符集中可以打印的字符,所以名称中含有Printable。大体格式为:

  =A1A=B1z=A6n=A1I=A7=DA=A6b=BA=F4=B8=F4=A4W

  =B1o......

  =E5==ABH=A5=F3=B0=DD=C3D=B1M=Aea=A1A......

  特征:内容通常有很多等号“=”,因此不需要看“信头”也可以判断是否为QP编码。

  解码办法:把邮件中类似A1A=B1z=A6n...的部分编码全部复制下来,贴到一个新的纯文本文件中,然后在文件头部加入Quoted-Pintable格式的文件头:

  Contenet-Type:text/plain;Charset="gb2312"

  Content-Transfer-Encoding;Quoted-Pintable

  然后以“EML”为后缀保存文件,用资源管理器双击打开文件即可显示正确的内容。如果还有部分汉字乱码,可以用Winzip对存盘后的EML文件进行解压,即可看到正确的内容。

  BINHEX:这种编码方式大体格式为:

  (This file must be converted with Binhex4.0)

  SGmhQbF6pm6hSafapmK69Lj0pFexb6qssTqq6vdCx

   0LF6tFit07Ddw0ShRw0KDQqtuqX9p2m2RLF6p9q

  oz6XOIE……

  解码办法:用E-mail软件对它解码;也可在E-mail软件中保存乱码邮件,存为后缀为“.HQX”格式的文件,然后用Winzip解码展开。

  解码后会消除乱码。

  UTIF-7/UTIF-8:它们是UNICODE的两种转换码。

  UTIF-7编码方式大体格式为:

  +SGmhQbF/6pm6hSafapmK69L/j0pFexb6q+sXqsT6Skp. OWrSKXzsN3DRLFNrmGhQQ0Kq1-sTqq6vdCx

  0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……

  解码办法:在原E-mail头加入以下信息:

  MIME-Version:1.0

  Content-Type:text/plain; charset="utf-7"

  Content-Transfer-Encoding:7bit

  插入后与字符留一空行,将邮件存为“EML”后缀,然后用Outlook即可解码,消除乱码。

  UTIF-8

  解码办法:在原E-mail头加入以下信息:

  MIME-Version:1.0

  Content-Type:text/plain; charset="utf-8"

  Content-Transfer-Encoding:8bit

  将邮件存为“EML”后缀,然后用Outlook即可解码,消除乱码。

  (3)操作系统语种不同

  对于中文电子邮件,如果收信方所用的操作系统是英文环境而且没有外挂中文系统或未切换为中文(如四通利方或南极星等)编码方式,也会无法看到中文只见乱码。所有的双字节字符(如中文简/繁体的GB和BIG5码及日文的JIS、EUC和朝鲜文的 KSC码等)在非本语种操作系统下都会出现乱码。同样在中文简体的GB码环境下看其它双字节字符时也只能看到乱码。

  对策:安装多语言支持包或使用多内码显示平台(如四通利方或南极星等),对收到的邮件,根据其使用的语种切换到相应的编码方式即可消除乱码。

  2.为了避免别人收到乱码,发信方应注意:

  (1) E-mail软件中的正确设置

  使用英文E-mail软件应设置成:

  文字设定Default CHARSET:ISO 8859-1

  (Latin1)

  编码方式Encoding:Quoted-Printable,不可选择7位(因为7位不支持中文)

  字码页Code Page(可选):936或HZ-GB-2312,

  以支持整字识别邮件格式:MIME

  字体:宋体

  中文E-mail软件应设置成:

  文字设定Default CHARSET:简体中文gb2312

  编码方式Encoding:Quoted-Printable邮件格式:MIME

  字体:宋体

  Outlook Express中应把“简体中文(gb2312)作为默认的邮件使用语言,选择“国际设置”/为接收的所有邮件使用默认的编码。

  (2)发送前将邮件按7位格式重新编码

  在发送8位格式的文本文件时,必须事先进行编码,将文件转换为7位ASCII码或更少位数的格式,然后才能保证文件的正确传送。收件人收到7位或更少位格式的邮件之后,可以再转换为8位的格式,这样就可以阅读了。

  在邮件客户端软件中的书写(撰写)选项中,设定默认自动为7位编码。

  (3)转换成合适的内码

  在E-mail软件的书写(撰写)选项中,设定默认自动为7位编码。对用汉字系统编辑的中文邮件在发送前,最好在固定的签字栏中注明自己所使用的汉字码标准(如:gb2312、中文HZ、GBK);港澳台及东南亚地区邮件作者在使用BIG5码撰写完邮件、向内地发送前要转换成上述三种简体国标码中的一种形式并在签字栏中注明。如不转换则可能无法阅读,因为国内用户使用的邮件系统有很多不支持BIG5码。

  (4)发送重要信息时先发测试信

  发送重要信息时,为了确认是否无须编码即可发送正文,应该先发送测试信。而且还应确定收件人能否对附件文件进行解码。如果发送已经编码的邮件,则最好添加足够的“信头”信息,以便收件人知道所需的解码方法。建议对UUENCODE/UUDeview编码方式用UUENCODING作信头,对Mpack编码方式用Base64 encoding作信头。

  (5)尽量利用“附件”功能发送文件

  几乎所有的邮件软件,如Netscape、The Bat!、 Becky! 等邮件系统附加这类非标准 ASCII码格式的文件时,附加文件通常可以自动进行“Base64”方式编码(仅对附件部分进行编码)。在用“附件”方式发送邮件之前,无需进行编码;否则适得其反。因为邮件软件能够自动成功解码这类“附加”文件,因此在发送中文类邮件时应该首选这种方法。

  如果无法以附件方式发送文件,则必须在正文中发送中文或二进制文件如果发/收件人之间远隔万里,则传送过程中,第八位将可能被截掉。这时最好先在正文中用中文给收件人发一封测试信,并了解对方能否正确收到邮件正文。如果第八位被截掉,则收件人将会看到一些乱码,而不是上述的uu/b64/Qp等格式,而且这种信件几乎不可恢复。

  对策:在Netscape、Eudora或Pegasus Mail等你所使用的邮件系统中,选择其首选项或选项配置中的“Quoted Printalbe”或“MIME encoding”。

  (6)选择优秀的客户端邮件软件

  选择优秀E-mail收发软件可有效解决邮件乱码。

  3.为排除乱码,收信方应注意:

  查找邮件:签字栏或正文中有无指明本邮件所使用汉字标准码类别的英文字符;在“查看(V)”下拉菜单中选中“语言”,随后出现的菜单中会包括本系统所能支持的全部汉字标准,在其中单击邮件中所指明的一种。如果收到的邮件中没有指明其所使用的汉字标准,则只可按顺序单击,直到邮件正文显示正确为止(数个汉字标准中必有一个前面有“.”标记,此即您编辑器所用的汉字标准)。若使用的是Netscape,可在Option菜单的Document Encode中选择相应的项目。

  4.在非中文平台上中文邮件不出现乱码方法

  当对方没有中文平台而打开您发的中文邮件时,就会出现乱码。解决办法有两种:

  (1)用E-mail AID之类的工具

  UCWIN GOLD 1.0附带的工具E-mail AID可把文本文件转换为AID格式文件,大小只比原TXT文件增加几K。写好中文邮件后,用文本格式存盘,然后用E-mail AID以AID格式保存,最后把此文件连同E-mail AID一起作为附件插在信中。对方收到信后,只需运行E-mail AID打开AID格式文件即可看到汉字,不管对方在何语言平台下,都不会出现乱码。

  (2)把中文邮件以图形格式保存

  用画笔等绘图软件书写中文邮件,在图片中输入文字,用默认的BMP格式保存,将属性置为黑白模式(以减少BMP图片体积),然后用Winzip把它压缩成ZIP格式,作为附件在邮件中发送,这样不管对方在何语言平台下,都不会出现乱码。这种方法的缺点是生成的BMP中文邮件体积太大。(李红)

  

编辑 超级管理员
[进入IT论坛]
请您文明上网、理性发言并遵守相关规定,在注册后发表评论。
 北方网精彩内容推荐
无标题文档
天津民生资讯
天气交通 天津福彩 每月影讯 二手市场
空气质量 天津股票 广播节目 二手房源
失物招领 股市大擂台 天视节目 每日房价
热点专题
北京奥运圣火传递和谐之旅 迎奥运 讲文明 树新风
解放思想 干事创业 科学发展 同在一方热土 共建美好家园
2008天津夏季达沃斯论坛 《今日股市观察》视频
北方网网络相声频道在线收听 2008高考招生简章 复习冲刺
天津自然博物馆馆藏精品展示 2008年天津中考问题解答
带你了解08春夏服饰流行趋势 完美塑身 舞动肚皮舞(视频)
C-NCAP碰撞试验—雪佛兰景程 特殊时期善待自己 孕期检查
热点新闻排行 财经 体育 娱乐 汽车 IT 时尚 健康 教育

Copyright (C) 2000-2021 Enorth.com.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights reserved
本网站由天津北方网版权所有