當(dāng)我們?yōu)g覽網(wǎng)頁(yè)、打開文檔或郵件,運(yùn)行軟件時(shí),經(jīng)常會(huì)看到亂碼,通常是由于源文件編碼,Windows不能正確識(shí)別造成的的,也可能是其他原因。亂碼給我們帶來(lái)了太多的煩惱,為了幫助大家徹底擺脫亂碼,下面我們就來(lái)探討一下亂碼的形成原因及其消除方法。
一、亂碼有五種類型
常見的亂碼,一般可以分成五種類型:第一類是文本/文檔文件亂碼,這一般是由于源文件編碼,與Windows使用的編碼不通用造成的;第二類是網(wǎng)頁(yè)亂碼,形成原因與第一類亂碼類似;第三類是Windows系統(tǒng)界面亂碼,即中文Windows的菜單、桌面、提示框等顯示亂碼,主要是Windows注冊(cè)表中有關(guān)字體的部分設(shè)置不當(dāng)引起的;第四類是應(yīng)用程序的界面亂碼,即各種應(yīng)用程序(包括游戲)本來(lái)顯示中文的地方出現(xiàn)亂碼,形成原因比較復(fù)雜,有第二類的亂碼原因,也可能是軟件用到的中文鏈接庫(kù),被英文鏈接庫(kù)覆蓋造成的;第五類是郵件亂碼,形成原因也極其復(fù)雜。
二、如何消除應(yīng)用程序的界面亂碼?
目前有些軟件發(fā)行了Unicode版本,這是一種通用的字符編碼標(biāo)準(zhǔn),涵蓋了全球多種語(yǔ)言及古文和專業(yè)符號(hào),這種版本的軟件運(yùn)行在任何系統(tǒng)和語(yǔ)言上都不會(huì)亂碼,如果是非Unicode編碼的程序,就會(huì)有亂碼現(xiàn)象。
【形成原因】:原因有三種。如果是由于Windows注冊(cè)表中關(guān)于字體設(shè)置的信息不正確造成的,你可以用下面“如何消除Windows系統(tǒng)界面亂碼”介紹的辦法去解決;如果用上法解決不了,那就可能是由于軟件的中文鏈接庫(kù),被英文鏈接庫(kù)覆蓋而引起的。這種現(xiàn)象經(jīng)常發(fā)生在用微軟開發(fā)工具例如VB、VC開發(fā)的中文軟件上,這類軟件中,菜單等顯示界面上的漢字都是受一個(gè)動(dòng)態(tài)鏈接庫(kù)(DLL文件)控制,而軟件的這個(gè)動(dòng)態(tài)鏈接庫(kù)一般安裝在Windows\System目錄下,如果以后安裝了某個(gè)英文軟件也使用同名的動(dòng)態(tài)鏈接庫(kù),則英文軟件的動(dòng)態(tài)鏈接庫(kù)就會(huì)覆蓋中文鏈接庫(kù),這樣,運(yùn)行中文軟件時(shí)就會(huì)調(diào)用英文的動(dòng)態(tài)鏈接庫(kù),因此出現(xiàn)亂碼。解決辦法:重新安裝中文軟件,恢復(fù)中文動(dòng)態(tài)鏈接庫(kù)即可。
如果以上方法也無(wú)濟(jì)于事,對(duì)于Win9X/ME系統(tǒng),你可以安裝使用MagicWin98(下載地址http://www.skycn.com/soft/3047.html)、南極星等內(nèi)碼轉(zhuǎn)換軟件,轉(zhuǎn)換內(nèi)碼后即可消除亂碼;對(duì)于WinXP系統(tǒng),建議使用微軟多語(yǔ)言支持工具M(jìn)icrosoftAppLocale(下載地址http://www.skycn.com/soft/12582.html),利用它為指定程序設(shè)置相應(yīng)的語(yǔ)言區(qū)域,這樣也可消除亂碼。
三、如何消除文本/文檔文件亂碼?
【形成原因】:一般是由于文檔采用的字符集,系統(tǒng)不支持造成的。例如繁體中文的文檔顯示在簡(jiǎn)體中文系統(tǒng)下,或者相反的情況,就會(huì)造成文檔顯示時(shí)亂碼。只要你內(nèi)碼轉(zhuǎn)換正確,例如把原本是繁體的內(nèi)碼,轉(zhuǎn)換為簡(jiǎn)體內(nèi)碼(或者相反),即可消除亂碼。
【解決辦法】:有以下四種解決辦法:
1、使用Word2003/XP轉(zhuǎn)換內(nèi)碼
Word2003/XP支持眾多的語(yǔ)言,可以正確顯示非Unicode類型的文本文件,單擊“工具”菜單下的“語(yǔ)言”/設(shè)置語(yǔ)言,你可以把默認(rèn)語(yǔ)言設(shè)置成非中文,例如日語(yǔ),這樣Word就可以正確顯示日文了。
當(dāng)然你也可以用它進(jìn)行簡(jiǎn)體中文與繁體中文之間的轉(zhuǎn)換工作,如果文件有亂碼,你轉(zhuǎn)換一下即可消除。例如要把繁體中文轉(zhuǎn)換為簡(jiǎn)體中文,方法是:選擇要轉(zhuǎn)換內(nèi)碼的文件,在彈出的對(duì)話框中,選擇“其他編碼”中的“繁體中文(BIG5)”一項(xiàng),打開此文件時(shí)就不會(huì)出現(xiàn)亂碼。
2、使用Word2003/XP無(wú)亂碼保存
在Word2003/XP中,當(dāng)保存時(shí)選擇“文件”中的“另存為”,先存為“WORD”文檔,存盤后打開再存為純文本等其他格式;或者在菜單欄中選擇“工具/語(yǔ)言/中文簡(jiǎn)繁轉(zhuǎn)換”,內(nèi)碼轉(zhuǎn)換以后再保存。
3、使用內(nèi)碼轉(zhuǎn)換工具
除此之外,使用內(nèi)碼轉(zhuǎn)換工具也可以消除此類亂碼,你只要對(duì)BIG5(繁體中文)和GB2312(國(guó)標(biāo)碼、簡(jiǎn)體中文)進(jìn)行相互轉(zhuǎn)換即可實(shí)現(xiàn)。
4、使用WPS2000轉(zhuǎn)換內(nèi)碼
WPS2000也能轉(zhuǎn)換內(nèi)碼,支持GB2312、BIG5、GBK等三種主要的漢字編碼,并可在輸出RTF、TXT、HTM格式文件時(shí)對(duì)內(nèi)碼進(jìn)行轉(zhuǎn)換。
四、如何消除網(wǎng)頁(yè)亂碼?
【形成原因】:網(wǎng)頁(yè)亂碼是瀏覽器(IE等)對(duì)HTML網(wǎng)頁(yè)解釋時(shí)形成的,如果網(wǎng)頁(yè)制作時(shí)編碼為A,瀏覽器卻以編碼B顯示該網(wǎng)頁(yè),就會(huì)出現(xiàn)亂碼,因此只要你在瀏覽器中也以編碼A顯示該網(wǎng)頁(yè),就會(huì)消除亂碼。
例如網(wǎng)頁(yè)的代碼中有形如:〈HTML〉〈HEAD〉〈META CONTENT=“text/html;charset=ISO-8859-1”〉〈/HEAD〉的語(yǔ)句,瀏覽器在顯示此頁(yè)時(shí),就會(huì)出現(xiàn)亂碼,因?yàn)闉g覽器會(huì)將此頁(yè)語(yǔ)種辨認(rèn)為“歐洲語(yǔ)系”。
【解決辦法】:有以下四種解決辦法:
1、在瀏覽器中選擇“編碼”菜單
事先為瀏覽器安裝多語(yǔ)言支持包(例如在安裝IE時(shí)要安裝多語(yǔ)言支持包),這樣當(dāng)瀏覽網(wǎng)頁(yè)出現(xiàn)亂碼時(shí),即可手工更改此類網(wǎng)頁(yè)的編碼方式,在瀏覽器中選擇菜單欄下的“查看”/“編碼”/“自動(dòng)選擇”/簡(jiǎn)體中文(GB2312),如為繁體中文則選擇“查看”/“編碼”/“自動(dòng)選擇”/繁體中文(BIG5),其他語(yǔ)言依此類推,選擇相應(yīng)的語(yǔ)系,這樣便可消除網(wǎng)頁(yè)亂碼現(xiàn)象。
2、修改網(wǎng)頁(yè)代碼
用FrontPage等軟件打開出現(xiàn)亂碼的網(wǎng)頁(yè),修改該網(wǎng)頁(yè)代碼,在以下句子中
〈META CONTENT=“text/html;charset=ISO-8859-1”〉,將語(yǔ)種“ISO-8859-1”改為GB2312,如果是繁體網(wǎng)頁(yè)則改為BIG5。
3、無(wú)亂碼保存網(wǎng)頁(yè)
用瀏覽器打開該網(wǎng)頁(yè),在“查看”/“編碼”中選擇“自動(dòng)選擇”,存盤時(shí)保存類型選“WEB頁(yè)”,編碼選擇“UNICODE”,這樣保存過(guò)的網(wǎng)頁(yè)再次打開時(shí),在瀏覽器菜單“查看”/“編碼”中不管選擇簡(jiǎn)體中文(GB2312)、簡(jiǎn)體中文(HZ)還是UNICODE(UTF-8)或繁體中文(BIG5),最終顯示都不會(huì)出現(xiàn)亂碼。
4、使用多內(nèi)碼顯示軟件
使用多內(nèi)碼顯示軟件來(lái)轉(zhuǎn)換內(nèi)碼,也可以消除亂碼。
五、如何消除Windows系統(tǒng)界面亂碼?
【形成原因】:這類亂碼是由于Windows注冊(cè)表中關(guān)于字體部分配置不正常造成的,即使您用內(nèi)碼翻譯軟件(如南極星、MagicWin98等)處理也不會(huì)消除。
【解決辦法】:在Windows注冊(cè)表中,恢復(fù)關(guān)于字體部分的正確設(shè)置。
1、利用顯示正常的電腦
假如有一臺(tái)Windows版本相同、顯示正常的電腦可以利用,你可以如下步驟進(jìn)行恢復(fù):在正常機(jī)器上選擇“開始”/“運(yùn)行”,在對(duì)話框中鍵入“REGEDIT”,打開注冊(cè)表編輯器;光標(biāo)定位到“HKEY_LOCAL_MACHINE\SYSTEM\CURRENT CONTROL SET\CONTROL\FONTASSOC”,選擇“注冊(cè)表/導(dǎo)出注冊(cè)表文件”,選擇“分支”,導(dǎo)出該分支注冊(cè)表信息到文件(如LI.REG)中;把LI.REG文件COPY到顯示亂碼的機(jī)器上,在顯示亂碼機(jī)器上運(yùn)行REGEDIT,選擇“注冊(cè)注冊(cè)表”/“導(dǎo)入注冊(cè)注冊(cè)表”,把LI.REG文件導(dǎo)入注冊(cè)表中。
2、在顯示亂碼的電腦上操作
如果沒有顯示正常的電腦可以利用,就需要您手工恢復(fù)字體部分注冊(cè)表項(xiàng),方法有以下兩種:
第一種方法:用記事本編輯一個(gè)文件,然后保存為擴(kuò)展名“REG”(文件名隨意),再用鼠標(biāo)右鍵單擊這個(gè)文件,在右鍵菜單中選擇合并,即可完成對(duì)注冊(cè)表的改動(dòng)。該文本文件的內(nèi)容如下:
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurtentControlset\control\fontassoc]
[HKEY_LOCAL_MACHINE\System\CurtentControlset\control\fontassoc\Associated DefaultFonts]
"assocSystemFont"="simsun.ttf"
"FontPackageDontCare"="宋體"
"FontPackageRoman"="宋體"
"FontPackageSwiss"="宋體"
"FontPackageModem"="宋體"
"FontPackageScript"="宋體"
"FontPackageDecorative"="宋體"
[HKEY_LOCAL_MACHINE\System\CurtentControlset\control\fontassoc\Associated CharSet]
"ANSI(00)"="yes"
"SYMBOL(02)"="no"
"OEM(FF)"="yes"
"GB2312(86)"="yes"
第二種方法:在出現(xiàn)亂碼的電腦上,單擊菜單“開始”/運(yùn)行,鍵入REGEDIT打開注冊(cè)表;找到“HKEY_LOCAL_MACHINE\SYSTEM\CURRENT CONTROL SET\CONTROL\FONTASSOC”,正常情況下會(huì)有ASSOCIATED DEFAULTFONTS、ASSOCIATED CHARSET兩個(gè)文件夾,
當(dāng)出現(xiàn)漢字亂碼時(shí),上述兩個(gè)文件夾中內(nèi)容就會(huì)不完整,有的沒有ASSOCIATED CHARSET文件夾、或其中內(nèi)容殘缺不全;有的ASSOCIATED DEFAULTFONTS下內(nèi)容殘缺。只要你打開注冊(cè)表,在“HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\FONTASSOC”下,根據(jù)以上正確內(nèi)容恢復(fù)即可。
六、如何消除郵件亂碼?
郵件亂碼的形成原因很多,主要有以下幾個(gè)方面,針對(duì)以下幾種形成原因,應(yīng)該采取不同的亂碼消除方法:
1、收發(fā)信雙方的語(yǔ)種不同導(dǎo)致的
收發(fā)雙方使用的操作系統(tǒng)的不同,可以造成亂碼。比如發(fā)件人使用的是日文的Windows,而收件人使用的是簡(jiǎn)體中文的Windows,這樣的郵件當(dāng)然會(huì)造成亂碼。對(duì)于中文電子郵件,如果收信方所用的操作系統(tǒng)是英文環(huán)境、而且沒有外掛中文系統(tǒng)或未切換為中文(如南極星等)編碼方式,也會(huì)無(wú)法看到中文、只可見亂碼。所有的雙字節(jié)字符(如中文簡(jiǎn)/繁體的GB和BIG5碼及日文的JIS、EUC和朝鮮文的 KSC碼等)在非本語(yǔ)種操作系統(tǒng)下都會(huì)出現(xiàn)亂碼;同樣在中文簡(jiǎn)體的GB碼環(huán)境下,看其他雙字節(jié)字符時(shí)也只能看到亂碼。
【解決辦法】:安裝多語(yǔ)言支持包或使用多內(nèi)碼顯示平臺(tái)(如南極星等),對(duì)收到的郵件,根據(jù)其使用的語(yǔ)種切換到相應(yīng)的編碼方式即可消除亂碼。
2、發(fā)信服務(wù)器不支持8位(非ASCII碼格式)傳輸
郵件傳輸機(jī)制或郵件編碼的不同,可能造成郵件服務(wù)器不支持8位(非ASCII碼格式)傳輸而形成郵件亂碼。例如直接發(fā)送中文或二進(jìn)制等非ASCII碼格式的郵件(如中文雙字節(jié)文件、圖片文件.jpg、可執(zhí)行文件.exe或壓縮文件.zip等二進(jìn)制文件)時(shí),郵件服務(wù)器有可能無(wú)法處理,便把信件中每個(gè)字符的第八位都過(guò)濾掉,從而造成郵件信息的失真或損壞,在收到郵件時(shí)就是一堆亂碼。
【解決辦法】:只能由發(fā)件人解決。當(dāng)發(fā)送8位格式的文本文件時(shí),必須事先進(jìn)行編碼,將文件轉(zhuǎn)換為7位ASCII碼或更少位數(shù)的格式,然后才能保證文件的正確傳送。收件人收到7位或更少位格式的郵件后,可以再轉(zhuǎn)換為8位的格式,這樣就可避免亂碼。
3、收發(fā)端用的EMAIL軟件和設(shè)置不同
一般EMAIL軟件的"附件"功能都可以自動(dòng)對(duì)信件先進(jìn)行編碼,然后送出。這樣只要收信人使用的EMAIL軟件(如Outlook XP等)能區(qū)別信件的編碼方式,即可自動(dòng)將信件解碼。如果收發(fā)件人所用的EMAIL軟件默認(rèn)配置不同、收發(fā)件人自己定制的一些選項(xiàng)不同,在收到編碼的信件后,系統(tǒng)就未必能識(shí)別出信件所用的編碼方法,自然也無(wú)法自動(dòng)解碼,這樣就會(huì)出現(xiàn)亂碼。
【解決辦法】:如果你用OE收中文郵件,看到的是一篇亂碼,可以查一下“查看”-“編碼”下,是否選了“簡(jiǎn)體中文(GB2312)”,選對(duì)了就不會(huì)有問題。
此外,你也可以用Winzip+IE來(lái)解碼,方法是:把亂碼郵件的內(nèi)容,拷貝到剪貼板中,然后將其粘貼到記事本中,存為文本文件(例如LI.txt),再將其后綴改為.uue(改為L(zhǎng)I.uue),點(diǎn)擊此文件,會(huì)啟動(dòng)Winzip,然后啟動(dòng)IE,把Winzip中的001.txt文件拖到IE窗口中,就會(huì)顯示郵件原來(lái)的內(nèi)容,而不會(huì)看到亂碼。
4、Email軟件不能識(shí)別郵件的編碼方法
郵件的編碼方式主要有:Uuencode、Base64 encode、QP-encode、BINHEX等。如果Email軟件不能識(shí)別郵件的編碼方法,就會(huì)顯示郵件時(shí)出現(xiàn)亂碼。因此,你可以根據(jù)郵件中的關(guān)鍵字符判斷編碼方法,選取合適的解碼軟件進(jìn)行解碼。
?。?)、QpencodeQP編碼
該編碼全稱“Quoted-Printable Content-Transfer-Encoding”,因?yàn)檫@種格式郵件的內(nèi)容都是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......
特征:內(nèi)容通常有很多等號(hào)"=",因此不需要看"信頭"也可以判斷是否為QP編碼。
解碼辦法:把郵件中類似A1A=B1z=A6n…的部分編碼全部復(fù)制下來(lái),貼到一個(gè)新的純文本文件中,然后在文件頭部加入Quoted-pintable格式的文件頭:
Contenet-Type:text/plain;Charset=”GB2312”
Content-Transfer-Encoding;Quoted-pintable
然后以“EML”為后綴保存文件,用資源管理器雙擊打開文件即可顯示正確的內(nèi)容。如果還有部分漢字亂碼,可以用WINZIP對(duì)存盤后的EML文件進(jìn)行解壓,即可看到正確的內(nèi)容。
?。?)MIME/BASE64 encode編碼
該編碼方式將3個(gè)字節(jié)(8位)用4個(gè)字節(jié)(6位)表示,由于編碼后的內(nèi)容是6位的,因此可避免第8位被截掉,大體格式為:
MIME-Version:1.0
Content-Type:text/plain; charset="us-ascii"
Content-Transfer-Encoding:base64
Status:R SGmhQbF6pm6hSafapmK69Lj0pFexb6q+sXqsT6Skp OWrSKXzs
N3DRLFNrmGhQQ0Kq1+sTqq6vdCx
0LF6tFit07Ddw0ShRw0KDQqtuqX9p2m2RL
F6p9qoz6XOIE1Py3Jvc29mdCuiBJbnRlcm5ldCBN......。
作者: 發(fā)布時(shí)間:2005-11-25 17:28:25 文章來(lái)源:硅谷動(dòng)力 |
|