乱码形成原因及其消除方法
来源:互联网 发布:镇宅用什么宝剑 知乎 编辑:程序博客网 时间:2024/04/30 17:45
一、乱码有五种类型
常见的乱码,一般可以分成五种类型:第一类是文本/文档文件乱码,这一般是由于源文件编码,与Windows使用的编码不通用造成的;第 二类是网页乱码,形成原因与第一类乱码类似;第三类是Windows系统界面乱码,即中文Windows的菜单、桌面、提示框等显示乱码,主要是Windows注 册表中有关字体的部分设置不当引起的;第四类是应用程序的界面乱码,即各种应用程序(包括游戏)本来显示中文的地方出现乱码,形成原因比较复杂 ,有第二类的乱码原因,也可能是软件用到的中文链接库,被英文链接库覆盖造成的;第五类是邮件乱码,形成原因也极其复杂。
二、如 何消除应用程序的界面乱码?
目前有些软件发行了Unicode版本,这是一种通用的字符编码标准,涵盖了全球多种语言及古文和专业符号 ,这种版本的软件运行在任何系统和语言上都不会乱码,如果是非Unicode编码的程序,就会有乱码现象。
【形成原因】:原因有三种。 如果是由于Windows注册表中关于字体设置的信息不正确造成的,你可以用下面“如何消除Windows系统界面乱码”介绍的办法去解决;如果用上法解决不 了,那就可能是由于软件的中文链接库,被英文链接库覆盖而引起的。这种现象经常发生在用微软开发工具例如VB、VC开发的中文软件上,这类软件中, 菜单等显示界面上的汉字都是受一个动态链接库(DLL文件)控制,而软件的这个动态链接库一般安装在Windows/System目录下,如果以后安装了某个英 文软件也使用同名的动态链接库,则英文软件的动态链接库就会覆盖中文链接库,这样,运行中文软件时就会调用英文的动态链接库,因此出现乱码。解 决办法:重新安装中文软件,恢复中文动态链接库即可。
如果以上方法也无济于事,对于Win9X/ME系统,你可以安装使用 MagicWin98(下载地址http://www.skycn.com/soft/3047.html)、南极星等内码转换软件,转换内码后即可消除乱码;对于WinXP系统,建议使用微软多 语言支持工具MicrosoftAppLocale(下载地址http://www.skycn.com/soft/12582.html),利用它为指定程序设置相应的语言区域,这样也可消除乱码。
三、如何消除文本/文档文件乱码?
【形成原因】:一般是由于文档采用的字符集,系统不支持造成的。例如繁体中文的文 档显示在简体中文系统下,或者相反的情况,就会造成文档显示时乱码。只要你内码转换正确,例如把原本是繁体的内码,转换为简体内码(或者相反 ),即可消除乱码。
【解决办法】:有以下四种解决办法:
1、使用Word2003/XP转换内码
Word2003/XP支持众多的语言,可以正确显示非Unicode类型的文本文件,单击“工具”菜单下的“语言”/设置语言,你可以把默认语言设置成非中文,例如日 语,这样Word就可以正确显示日文了。
当然你也可以用它进行简体中文与繁体中文之间的转换工作,如果文件有乱码,你转换一下即可消 除。例如要把繁体中文转换为简体中文,方法是:选择要转换内码的文件,在弹出的对话框中(如下图),选择“其他编码”中的“繁体中文(BIG5)”一项, 打开此文件时就不会出现乱码。
在Word2003/XP中,当保存时选择“文件”中的“另存为”,先存为“WORD”文档,存盘后打开再存为纯 文本等其他格式;或者在菜单栏中选择“工具/语言/中文简繁转换”,内码转换以后再保存。
3、使用内码转换工具
除此之外 ,使用内码转换工具也可以消除此类乱码,你只要对BIG5(繁体中文)和GB2312(国标码、简体中文)进行相互转换即可实现。常用的内码转换工具有 :
4、使用WPS2000转换 内码
WPS2000也能转换内码,支持GB2312、BIG5、GBK等三种主要的汉字编码,并可在输出RTF、TXT、HTM格式文件时对内码进行转 换。
四、如何消除网页乱码?
【形成原因】:网页乱码是浏览器(IE等)对HTML网页解释时形成的,如果网页制作时编码为A,浏览器却 以编码B显示该网页,就会出现乱码,因此只要你在浏览器中也以编码A显示该网页,就会消除乱码。
例如网页的代码中有形如:〈HTML 〉〈HEAD〉〈META CONTENT=“text/html;charset=ISO-8859-1”〉〈/HEAD〉的语句,浏览器在显示此页时,就会出现乱码,因为浏览器会将此页语种 辨认为“欧洲语系”。
【解决办法】:有以下四种解决办法:
1、在浏览器中选择“编码”菜单
事先为浏览器 安装多语言支持包(例如在安装IE时要安装多语言支持包),这样当浏览网页出现乱码时,即可手工更改此类网页的编码方式,在浏览器中选择菜单栏下的 “查看”/“编码”/“自动选择”/简体中文(GB2312),如为繁体中文则选择“查看”/“编码”/“自动选择”/繁体中文(BIG5),其他语言依此类推,选择相应的语系, 这样便可消除网页乱码现象。
2、修改网页代码
用FrontPage等软件打开出现乱码的网页,修改该网页代码,在以下句子 中
〈META CONTENT=“text/html;charset=ISO-8859-1”〉,将语种“ISO-8859-1”改为GB2312,如果是繁体网页则改为BIG5。
3、无乱码保存网页
用浏览器打开该网页,在“查看”/“编码”中选择“自动选择”,存盘时保存类型选“WEB页”,编码选择 “UNICODE”,这样保存过的网页再次打开时,在浏览器菜单“查看”/“编码”中不管选择简体中文(GB2312)、简体中文(HZ)还是UNICODE(UTF-8)或 繁体中文(BIG5),最终显示都不会出现乱码。
4、使用多内码显示软件
使用多内码显示软件来转换内码,也可以消除乱 码。常用多内码显示软件有:
【形成原因】:这类乱码是由于Windows注册表中关于字体部分配置不正常造成的,即使您用 内码翻译软件(如南极星、MagicWin98等)处理也不会消除。
【解决办法】:在Windows注册表中,恢复关于字体部分的正确设置。
1、利用显示正常的电脑
假如有一台Windows版本相同、显示正常的电脑可以利用,你可以如下步骤进行恢复:在正常机 器上选择“开始”/“运行”,在对话框中键入“REGEDIT”,打开注册表编辑器;光标定位到“HKEY_LOCAL_MACHINE/SYSTEM/CURRENT CONTROL SET/CONTROL/FONTASSOC”,选择“注册表/导出注册表文件”,选择“分支”,导出该分支注册表信息到文件(如LI.REG)中(如下图);把LI.REG文件 COPY到显示乱码的机器上,在显示乱码机器上运行REGEDIT,选择“注册注册表”/“导入注册注册表”,把LI.REG文件导入注册表中。
2、在显示乱码的电脑上 操作
如果没有显示正常的电脑可以利用,就需要您手工恢复字体部分注册表项,方法有以下两种:
第一种方法:用记事本 编辑一个文件,然后保存为扩展名“REG”(文件名随意),再用鼠标右键单击这个文件,在右键菜单中选择合并,即可完成对注册表的改动。
- 乱码形成原因及其消除方法大全
- 乱码形成原因及其消除方法
- 乱码形成原因及其消除方法大全
- 乱码形成原因及其消除方法大全
- 文件上传文件名乱码的解决方法及形成乱码原因
- 低血压形成的原因和治疗方法
- css浮动原因与消除方法
- shell和vim中乱码原因及消除办法
- 织物纬斜的形成原因、类型以及测试方法
- 邮件乱码产生的原因及其分析
- 随州胆囊结石形成原因
- 亚稳态的形成原因
- 癌症形成原因
- 【冰雨飘摇原创】mysql消除乱码方法集(图文)
- java各种处理字符串情况乱码原因分析及其解决方法
- Linux环境下shell和vim中乱码原因及消除办法
- Linux环境下shell和vim中乱码原因及消除办法
- Linux环境下shell和vim中乱码原因及消除办法 2
- ADO实现Access数据库表的遍历和字段的遍历(VC版)
- WINCE自带数据库系统
- oracle笔记
- 大型机学习之具体技术之-z/OS中的作业管理系统,SDSF工具及JCL
- 微格式随想
- 乱码形成原因及其消除方法
- debian etch跟踪-gcc
- Windows API 简介
- 取得计算列的中的值
- 利用Thread-Specific Storage撰寫一個HibernateUtil
- JSON为什么那样红
- 互联网:从流量经营到服务经营
- 想你了
- memmove