所谓的“乱码”是什么?具体有哪些表现?原因是什么?

汉字乱码有几种情况,大致分为四类:网页乱码、文本乱码、文档乱码、文件乱码。第一类是港台的BIG5繁体中文和中国大陆的简体中文(GB2312)不兼容造成的。第二种是Win9X/Win2K系统(菜单、桌面、提示框)显示乱码,这是Win9X/Win2K注册表中字体设置不当造成的。第三类是各类应用(包括游戏)出现中文乱码,原因复杂。还有第二类乱码原因,也有可能是软件中使用的中文动态链接库被英文动态链接库覆盖造成的。最后一类是乱码邮件。

因为楼主没说清楚是什么,所以只好写长一点,呵呵,希望楼主有耐心看完:

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

浏览器(如IE)解释HTML页面时会形成页面乱码。如果有类似“HTML”“head”“meta content = " text/HTML;Charset = ISO-8859-1 " >...,当浏览器显示此页面时,会出现乱码。因为浏览器会把这个页面的语言识别为“欧洲家庭”。解决方法是将语言“ISO-8859-1”改为GB2312,如果是传统网页则改为BIG5。

另一种解决方法是在不修改网页代码的情况下,提前为浏览器安装多语言支持包(比如安装IE时安装多语言支持包),这样当网页出现乱码时,可以在浏览器中的菜单栏下选择查看/代码/自动选择/简体中文(GB2312),如果是繁体中文则选择查看/代码。

另一种解决方法是使用多内码显示平台来转换内码。常用的多内码展示平台有:invivo、四通李芳、MagicWin 98等。

保存无乱码网页的方法如下:用浏览器打开网页时,在视图/代码中选择“自动选择”,保存时选择“网页”作为保存类型,选择“UNICOD”作为编码,这样再次打开保存的网页时,可以在浏览器菜单“视图”和“代码”中选择简体中文(GB2312)。

文本和文档文件出现乱码,一般是由于简体中文系统显示繁体中文或反之所致。只要把原来的传统内码转换成简化内码(反之亦然),就可以消除乱码。

Word能胜任这种工作。比如将繁体中文转换为简体中文,方法是:选择要转换内码的文件,在弹出的对话框中,选择“其他代码”中的“繁体中文(BIG5)”项,这样打开这个文件时,就不会出现乱码。无乱码的保存方法:保存时,在“文件”中选择“另存为”,先保存为“Word文档”,保存后再打开,再保存为纯文本等格式;也可以使用Word的“中文简繁转换”工具保存,不会出现乱码。方法是在菜单栏选择“工具/语言/中文简繁转换”,内码转换后再保存。

另外,这种乱码的消除也可以通过BIG5(繁体中文)和GB2312(国标代码,简体中文)的相互转换来实现。常用的内码转换工具有:“飓风简繁”、“内码转换大师”、“汉通”、“两岸汉字内码转换器”等。

(2)Win9X/win 2k系统中乱码的消除。

这种乱码是注册表中字体配置异常造成的,即使使用四通李芳、invivo、Magic Win98、两岸通等内部代码翻译软件也不会消除。解决方法是恢复注册表中的字体设置。

如果有Win9X/Win2K版本相同且显示正常的机器,可以按照以下步骤恢复:

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

2.导航到“HKEY _本地_机器\系统\ current control set \ control \ font assoc”,选择“注册表/导出注册表文件”,然后选择“分支”将分支注册表信息导出到一个文件中(如李。REG);

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

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

1.在乱码机上打开“开始”-“运行”-regedit,然后回车打开注册表编辑器;

2.找到“HKEY _本地_机器\系统\当前控制集\控制\字体关联”。一般情况下,会有两个文件夹,即关联DEFAULTFONTS和关联CHARSET。正确的内容如下:

子目录内容

中文Win98

中文Win98(OEM版本)

中文Win2K

关联字符集

ANSI(00)= "是"

GB2312(86)=“是”

DEN(FF)= "是"

符号(02)=“否”

ANSI(00)= "是"

GB2312(86)=“是”

OEM(FF)=“是”

符号(02)=“否”

ANSI(00)= "是"

OEM(FF)=“是”

符号(02)=“否”

关联违约

字体

AssocSystemFont="simsun.ttf "

FontPackageDecorative= "Song Ti "

FontPackageDontcare= "Song Ti "

FontPackageModern= "宋体"

font packegeroman = "é"

FontPackageScript= "宋体"

FontPackageSwiss= "Song Ti "

童佐兰

AssocSystemFont="simsun.ttf "

FontPackage= "新宋体"

FontPackageDecorative= "新歌风格"

Fontpackagedongtcare = "新歌风格"

FontPackageModern= "新歌风格"

Fontpackegeroman = "新歌风格"

FontPackageScript= "新歌曲风格"

FontPackageSwiss= "新歌风格"

3.汉字乱码时,上述两个文件夹中的内容会不完整,有的没有关联的CHARSET文件夹或内容不完整;关联默认字体下的某些内容不完整。只需使用“HKEY _本地_机器\系统\当前控件集\控件\字体关联”下的REGEDIT,按照上述正确内容进行恢复即可。

(3)消除应用程序(包括游戏)中的乱码

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

如果用上面的方法解决不了,那是因为软件的中文链接库被英文链接库覆盖了。这种现象经常出现在用VB、VC等微软开发工具开发的中文软件中。在这类软件中,菜单上的汉字和其他显示界面都是由一个动态链接库(DLL文件)来控制的,软件的这个动态链接库一般安装在Windows的系统目录下。如果以后安装了同名的英文软件,英文软件的动态链接库会覆盖WINDOWS\SYSTEM下中文软件的动态链接库。这样中文软件运行时会调用英文动态链接库,所以会出现乱码。解决办法是重装中文软件,恢复中文动态链接库。

(四),消除邮件乱码

1.垃圾邮件的成因及排除

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

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

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

对策:发送8位格式的文本文件时,必须事先进行编码,必须将文件转换成7位以下ASCII码的格式,才能保证文件的正确传输。收到7位或更低格式的邮件后,收件人可以将其转换为8位格式,从而避免乱码。

(2)收发器使用的电子邮件软件和设置不同。

一般电子邮件软件的“附件”功能可以先自动对信件进行编码,然后再发送出去。这样,只要电子邮件软件(如Outlook、网景电子邮件等。)所使用的接收方可以区分字母的编码方式,字母可以被自动解码。但是,由于发信人和收信人使用的电子邮件软件的默认配置不同,或者发信人定制的选项不同,系统收到信件后可能无法识别信件中使用的编码方式,自然无法自动解码,从而导致乱码。

对策:可以用Winzip+IE解码。方法是:将乱码邮件的内容复制到剪贴板,然后粘贴到记事本中保存为文本文件(例如LI.txt),再将后缀改为。uue(改为LI.uue)。点击这个文件会启动Winzip,然后启动IE,把001.txt放在Winzip里。

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

电子邮件编码方法主要包括:UUENCODE、Base64编码、QP编码、BINHEX等。

UUENCODE:这是UNIX环境下使用的编码方式,目前很少使用。一般格式是:

begin 644 kk . zip m 1G)O;2!我;& ampEN+F)B3T!c(VEE+FYC = ' 4n 961U+g 1W(% = E9 "!。;W8@(#8@,3(ZM,SDZ,C4@,3DY-@ I296-E:79e 9 # H @ 9G)O;2!f;& amp% B;6%我;”YF;& amp%B+F9U:FET……

结束

特点:乱码前面是“begin xxx”,后面是编码前的原始文件名(如kk.zip),后面是编码后的信件内容的最后一行“end”(如上面提到的乱码部分)。

解码方法:贝基可以用!电子邮件软件,如EUDORA,可以在编码中选择相应的选项进行解码,也可以将电子邮件软件中的乱码邮件保存为带后缀“的文件。UUE”,然后用Winzip对它们进行解码和扩展。解码后,乱码会被剔除。

MIME/BASE64编码:这种编码方法用4个字节(6位)表示3个字节(8位)。因为编码内容是6比特,所以可以避免第八比特被截断。一般格式如下:

MIME版本:1.0

内容类型:文本/纯文本;charset="us-ascii "

内容传输编码:base64

状态:R

sgmhqbf 6pm 6h safapmk 69 LJ 0 pfe XB 6 q+sxqst 6 skp owrskxzsn 3 drlfnrmghqq0k q 1+stq q6 vdcx & lt;BR & gt0 lf 6 tfit 07 ddw 0 shrw 0 KD qqtuqx 9 p 2m 2 rlf 6 p 9 qoz 6 coie 1 py 3 JVC 29 mdcuibjbnrlcm 5 ldcbn……

特点:一般乱码前有以下“头”:Content-Type、charset和content-transfer-encoding。

解码方法:使用电子邮件软件,选择编码中的Base64选项进行解码,解码后乱码会被消除。

QpencodeQP:全称“引用-可打印内容-传输-编码”。因为这种格式邮件的内容都是ASCII字符集中的可打印字符,所以名称包含Printable。一般格式是:

= a 1A = b 1z = A6n = a 1I = A7 = DA = A6b = BA = F4 = B8 = F4 = A4W

=B1o......

= E5 = = ABH = A5 = F3 = B0 = DD = C3D = b 1M = Aea = a 1A......

特点:内容通常有很多等号“=”,不用看“头”就能判断是不是QP编码。

解码方法:复制邮件中所有类似A1A=B1z=A6n的代码...并将它们粘贴到一个新的纯文本文件中,然后将带引号的格式的文件头添加到文件头中:

Contenet-Type:文本/纯文本;Charset="GB2312 "

内容传输编码;可引用的

然后用后缀“EML”保存文件,用资源管理器双击文件,显示正确的内容。如果有些汉字是乱码,你可以用Winzip解压保存的EML文件,看到正确的内容。

BINHEX:这种编码方法的一般格式是:

(此文件必须用Binhex4.0转换)

sgmhqbf 6pm 6h safapmk 69 LJ 0 pfe XB 6 qsstq 6 vdcx & lt;BR & gt0 lf 6 tfit 07 ddw 0 shrw 0 kdqqtuqx 9 p 2m 2 rlf 6 p 9 q

oz6XOIE……

解码方法:用电子邮件软件解码;你也可以在电子邮件软件中保存乱码邮件,保存为带后缀“的文件。HQX”格式,然后用Winzip对它们进行解码和扩展。

解码后,乱码会被剔除。

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

UTIF-7编码模式的一般格式是:

+SGmhQbF/6pm 6h safapmk 69 l/j 0 pfexb 6 q+sxqst 6 skp。owrskxzsn 3 drlfnrmghqq0k q 1-stq q6 vdcx & lt;BR & gt0 lf 6 tfit 07 ddw 0 shrw 0 KD qqtuqx 9 p 2m 2 rlf 6 p 9 qoz 6 coie 1 py 3 JVC 29 mdcuibjbnrlcm 5 ldcbn……

解码方法:将以下信息添加到原始电子邮件标题中:

MIME版本:1.0

内容类型:文本/纯文本;charset="utf-7 "

内容传输编码:7位

插入后,留下一个字符空行,将电子邮件保存为“EML”后缀,然后使用Outlook解码并消除乱码。

UTIF-8

解码方法:将以下信息添加到原始电子邮件标题中:

MIME版本:1.0

内容类型:文本/纯文本;charset="utf-8 "

内容传输编码:8位

将电子邮件保存为“EML”后缀,然后使用Outlook解码并消除乱码。

(3)不同的操作系统语言

对于中文电子邮件,如果收件人使用的操作系统是英文环境,并且没有外部中文系统或切换到中文(如四通李芳或invivo等))编码方式,你将看不到中文,只能看到乱码。所有双字节字符(如中文简体/繁体GB和BIG5码、日文JIS、EUC和韩文KSC码等。)在非母语操作系统下会乱码。同样的,在简体中文的GB码环境下看其他双字节字符,也只能看到乱码。

对策:安装多语言支持包或使用多内码显示平台(如四通李芳或invivo),根据使用的语言切换到相应的编码方式,消除乱码。

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

(1)更正电子邮件软件中的设置

使用英文电子邮件软件应设置为:

文本设置默认字符集:ISO 8859-1

(Latin1)

编码方式:带引号-可打印,不能选择7位数字(因为7位数字不支持中文)。

代码页(可选):936或HZ-GB-2312,

支持单词识别邮件格式:MIME

字体:宋体

中文电子邮件软件应设置为:

文本设置默认字符集:简体中文GB2312

编码:带引号的可打印邮件格式:MIME

字体:宋体

在Outlook Express中,简体中文(GB2312)应作为默认的电子邮件语言,并且应选择“国际设置”/所有收到的电子邮件应使用默认编码。

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

在发送8位格式的文本文件时,必须事先对其进行编码,并且必须将文件转换成7位或更少的ASCII码,才能保证文件的正确传输。在收到7位或更低格式的邮件后,收件人可以将其转换为8位格式,以便阅读。

在邮件客户端软件的书写(排版)选项中,自动将默认值设置为7位编码。

(3)转换成适当的内部代码

在电子邮件软件的书写(排版)选项中,自动将默认值设置为7位数字编码。对于汉字系统编辑的中文邮件,发送前最好在固定签名栏注明汉字编码标准(如GB2312、中文HZ、GBK);港澳台和东南亚地区的邮件作者在用BIG5码书写邮件寄往大陆前,应先转换为上述三种国家简化码中的一种,并在签名栏注明。不转换的话,可能就看不懂了,因为国内用户用的很多邮件系统都不支持BIG5代码。

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

发送重要信息时,为了确认文本是否可以不编码发送,应先发送一封测试信。还应该确定收件人是否可以解码附件。如果你发送一封编码邮件,你最好添加足够的“头”信息,以便收件人知道所需的解码方法。建议使用UUENCODING作为UU编码/UU DEVIEW编码的头,使用Base64编码作为Mpack编码的头。

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

几乎所有的电子邮件软件,如网景,蝙蝠!、贝基!当邮件系统附加这类非标准ASCII码格式的文件时,通常可以自动对附加文件进行“Base64”模式编码(只对附件部分进行编码)。在作为附件发送之前,不需要对电子邮件进行编码;否则,适得其反。因为电子邮件软件可以自动成功地解码这种“附件”文件,所以在发送中文电子邮件时应该首选这种方法。

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

对策:在你使用的电子邮件系统中,如Netscape、Eudora或Pegasus Mail,在其首选项或选项配置中选择“报价打印”或“MIME编码”。

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

选择优秀的电子邮件收发软件可以有效解决邮件乱码问题。

3.为了消除乱码,接收方应该注意:

检查邮件:签名栏中是否有英文字符或表明此邮件使用的汉字标准码类别的文字;在“视图(V)”下拉菜单中选择“语言”,之后出现的菜单将包含本系统支持的所有汉字标准。单击电子邮件中指定的其中一个。如果收到的邮件没有指定其使用的汉字标准,只能按顺序点击,直到邮件正文正确显示(必须有一个“.”在几个汉字标准中的一个前面做标记,就是你的编辑使用的汉字标准)。如果您使用的是Netscape,您可以在选项菜单中的文档编码中选择相应的项目。

4.在非中文平台上避免乱码中文邮件方法。

对方在没有中文平台的情况下打开你的中文邮箱,就会出现乱码。有两种解决方案:

(1)使用电子邮件帮助等工具。

UCWIN GOLD 1.0附带的工具E-mail AID,可以将文本文件转换成AID格式文件,文件大小只比原来的TXT文件大几k。写完一封中文邮件,先存成文本格式,再用E-mail AID存成AID格式,最后把这个文件和E-mail AID一起作为附件插入信中。对方收到信后,只需运行E-mail AID打开AID格式的文件就能看到汉字。无论对方在什么语言平台,都不会出现乱码。

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

用画图软件如brush写中文邮件,在图片中输入文字,保存为默认的BMP格式,设置属性为黑白模式(缩小BMP图片尺寸),然后用Winzip压缩成ZIP格式,作为附件在邮件中发送,这样无论对方是什么语言平台,都不会出现乱码。这种方法的缺点是生成的BMP中文邮件太大。