亂碼形成原因及其消除方法

亂碼形成原因及其消除方法
2007-06-07 16:57
當我們瀏覽網頁、打開文檔或郵件,運行軟件時,經常會看到亂碼,通常是由於源文件編碼,Windows不能正確識別造成的的,也可能是其他原因。 亂碼給我們帶來了太多的煩惱,爲了幫助大家徹底擺脫亂碼,下面我們就來探討一下亂碼的形成原因及其消除方法。

  一、亂碼有五種類型

  常見的亂碼,一般可以分成五種類型:第一類是文本/文檔文件亂碼,這一般是由於源文件編碼,與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)”一項, 打開此文件時就不會出現亂碼。
  2、使用Word2003/XP無亂碼保存

  在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系統界面亂碼?

  【形成原因】:這類亂碼是由於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”(文件名隨意),再用鼠標右鍵單擊這個文件,在右鍵菜單中選擇合併,即可完成對註冊表的改動。

 
發佈了18 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章