初心者站長之家
打印

[轉帖]亂碼翻譯攻略(全)

[轉帖]亂碼翻譯攻略(全)

有很多朋友都被 Windows 系統中各式各樣的亂碼所困惑,特別是收到的一些十分重要的信件程式、
檔案時會遇到亂碼,登上港台網站時會看到亂碼,還有原先顯示標準的 Windows 桌面、
選單中的漢字形如天書,本來顯示標準的各種套用程式、遊戲中的漢字也成了亂碼等等,
真的很是急人誤事!那怎麼辦呢?

漢字亂碼分類

漢字亂碼現象有4種類型:
1.文字亂碼:是 Windows 系統顯示亂碼,如:選單、桌面、提示框等。
這是由於註冊表中有關字型部分的設定不當引起的。
2.文件亂碼:是各種套用程式、遊戲本來顯示中文的地方出現亂碼。這種亂碼形成的原因比較複雜,
有第1類的亂碼原因,也可能是軟體中用到的中文動態連結庫被英文動態連結庫覆蓋所造成的。
3.檔案亂碼:主要是指信件亂碼。
4.網頁亂碼:是由於港台的繁體中文大五碼(BIG5)與大陸簡體中文(GB2312)不通用而造成的。

消除各類亂碼的方法

一、系統亂碼的消除方法
這類亂碼是由於在 Windows 註冊表中,關於字型部分組態不標準造成的,
即使你用內碼翻譯軟體處理也不會消除這類亂碼。那怎麼辦呢?

請依照下列步驟:

方法一:找一台與你的 Windows 版本相同且顯示標準的機器,依下列步驟進行:
1.在標準機器上選取 開始→執行,在對話框中鍵入 regedit,開啟註冊表編輯器。
2.請你將游標定位到 HKEY_LOCAL_MACHINE\ system\CurrentControlSet\Control\Fontassoc,
然後選取 註冊表→匯出註冊表檔案,再選取 分支,匯出該分支註冊表訊息到檔案(如ZT.REG)中。
3.把 ZT.REG 檔案複製到你那顯示亂碼的機器上,方法:
在顯示亂碼的機器上執行 regedit,開啟註冊表編輯器,選取 註冊表→匯入註冊註冊表,
把 ZT.REG 檔案匯入註冊表中即可。

方法二:若你找不到一台與你的 Windows 版本相同且顯示標準的機器,則需要手動恢復字型部分的註冊表項,其步驟是:
1.首先在顯示亂碼的機器上選取 開始→執行,在對話框中鍵入 regedit,開啟註冊表編輯器。
2.選取 HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Fontassoc,標準情況下,
會有 Associated DeaultFonts、Associated CharSet 兩個資料夾,其正確的內容應是:

子目錄內容
中文Win98
中文Win98(OEM版)
中文Win2000
Associated 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 DefaultFonts
AssocSystemFont=mingliu.ttf
FontPackageDecorative=新細明體
FontPackageDontcare=新細明體
FontPackageModern=新細明體
FontPackageRoman=新細明體
FontPackageScript=新細明體
FontPackageSwiss=新細明體

AssocSystemFont=mingliu.ttf
FontPackage=新新細明體
FontPackageDecorative=新新細明體
FontPackageDontcare=新新細明體
FontPackageModern=新新細明體
FontPackageRoman=新新細明體
FontPackageScript=新新細明體
FontPackageSwiss=新新細明體

3.當出現漢字亂碼時,上述兩個資料夾中的內容就會不完整,
有的沒有 Associated CharSet 資料夾或其中的內容殘缺不全;
有的 Associated DefaulFonts 下的內容殘缺。若果遇到這種情況怎麼辦呢?
其實你只要開啟註冊表編輯器,
在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Fonassoc 下,
根據以上的正確內容恢復即可。

二、套用程式、遊戲亂碼的消除方法
明明是中文軟體,可顯示界面上卻出現亂碼,
這可能是由於註冊表中關於字型設定的訊息不正確地被改變而造成的,
一般是因為軟體的中文連結庫被英文連結庫覆蓋而引起的,這種現象經常發生在用微軟開發工具,
例如 VB、VC 開發的中文軟體上。在這類軟體中,
選單等顯示界面上的漢字都是受一個動態連結庫 .DLL檔案 控制,
而軟體的這個動態連結庫一般是安裝在 Win 98/2000 的 System 目錄下的,
若以後你安裝了某個英文軟體也使用同名的動態連結庫,
則英文軟體的動態連結庫就會覆蓋掉你原先的 Windows\System 下的中文軟體的動態連結庫。
這樣,當你執行中文軟體時就會呼叫英文的動態連結庫,因此出現亂碼。
解決辦法是重新安裝中文軟體,恢復中文動態連結庫即可。

三、電子信件亂碼的消除方法
1.造成電子信件亂碼的原因很多,主要有以下幾個方面:
(1)動作系統語種不同。對於中文電子信件,
若果收信方所用的動作系統是英文環境而且沒有外掛中文系統或未切換為中文編碼模式,
也會無法看到中文,只見到亂碼。所有的雙位元組字元(如中文簡/繁體的 GB 和 BIG5 碼及日文的 JIS、
EUC 和朝鮮文的 KSC 碼等)在非本語種動作系統下都會出現亂碼。
同樣在中文簡體的 GB 碼環境下看其他雙位元組字元時也只能看到亂碼。

解決方法:安裝多語系支援包或使用多內碼顯示平台,對收到的信件,
根據其使用的語種切換到相應的編碼模式即可消除亂碼。

(2)信件伺服器不支援8位(非 ASCII 碼格式)。傳輸信件的傳輸機制或信件編碼的不同,
可能造成信件伺服器不支援8位(非 ASCII 碼格式)傳輸而形成信件亂碼。
例如直接傳送中文或二進位等非 ASCII 碼格式的信件(如中文雙位元組檔案、圖片檔案.jpg、
可執行檔案.exe或壓縮檔.zip等二進位檔案)時,信件伺服器有可能無法處理,
便把信件中每個字元的第8位都過濾掉,從而造成信件訊息的失真或損壞,在收到信件時就是一堆亂碼。

解決方法:在傳送8位格式的文字檔案時,必須事先進行編碼,
將檔案轉換為7位 ASCII 碼或更少位數的格式,然後才能保證檔案的正確傳輸。
收件人收到7位或更少位格式的信件後,可以再轉換為8位的格式,這樣就可避免亂碼。

(3)收發端使用的 E-mail 軟體和設定不同。一般 E-mail 軟體的附件功能都可以自動對信件先進行編碼,
然後再送出。這樣,只要收信人使用 E-mail 軟體就能區別信件的編碼模式,就可以自動將信件解碼。
然而由於收發件人所用的E-mail軟體預設組態不同或收發件人自己定制的一些選項不同,
所以在收到編碼的信件後,系統不一定能識別出信件所用的編碼方法,自然無法自動解碼,
這樣就會出現亂碼。
解決方法:

1.可以用 WinZip+IE 來解碼,請你把亂碼信件的內容,複製到剪貼簿中,然後將其貼上到記事本中,
存為文字檔案(例如 YJ.txt),再將其後綴改為.uue(改為 YJ.uue),點擊此檔案,會啟動 WinZip,
然後啟動 IE,把 WinZip 中的001.txt 檔案拖到 IE 視窗中,就會顯示信件原來的內容,
而不會看到亂碼。

2.可以根據信件中的關鍵字元判斷編碼方法,選取合適的解碼軟體進行解碼。
信件的編碼模式主要有:UUENCODE、 Base64 encode、QPencode、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;"......end

特徵:亂碼前面含有 begin xxx,後面是編碼前的原始檔案名(如kk.zip),
接著是已經由編碼的信件內容(如上述的亂碼部分),最後一行為 end。

解碼辦法:可用 BECKY! EUDORA 等 E-mail 軟體,選取編碼中相應的選項就可解碼,
也可以在 E-mail 軟體中儲存亂碼信件,存為後綴為.UUE 格式的檔案,然後用 Winzip 解碼展開。
解碼後就會消除亂碼。

MIME/BASE64 encode:該編碼模式將3個位元組用4個位元組表示,由於編碼後的內容是6位的,
因此可避免第8位被截掉,大體格式為:

MIME–Version:1.0

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

Content–Transfer-Encoding:base64

Status:R

SGmhQbF6pm6hSafapmK69Lj0pFexb6q+sXqsT6Skp OWrSKXzsN3DRLFNrmGhQQ0Kq1+sTqq6vdCx
0LF6tFit07D

dw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiB

JbnRlcm5ldCBN……

特徵:亂碼前一般有如下幾部分 信頭: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
0LF6tFit07Ddw0

ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbn

Rlcm5ldCBN……

解碼辦法:在原 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 即可解碼,消除亂碼。

另外,還可以採用以下方法解決:

A.請你在 Outlook Express 中,把 檢視→編碼 選為 簡體中文。

B.變更 IE 的設定:在 IE 瀏覽器中,開啟 工具→Internet選項(o)...→進階,
將 瀏覽 中 始終以 UTF-8 傳送 URL 選項前面的勾去掉。

C.或將檔案下載到近端硬碟裡面再開啟(點擊滑鼠右鍵選取 檔案另存為…)。儲存檔案時,
檔案名可能會是亂碼,只需變更該檔案名即可。

D.或直接使用檔案名為英文的附件,可以直接在 IE 中開啟。

但有時仍不能奏效。

3.無意中,筆者近日在網上衝浪時發現了一個好東西:很酷的 CodeView 亂碼察看器!
好事共享,不敢獨吞! 這就趕緊介紹給朋友們:

大名:亂碼察看器
小名:CodeView
版本:2.50
系統平台:Win 95/98/NT/2000
CodeView 亂碼察看器 顧名思義就是用來察看各種亂碼的工具軟體,
目前已經可以支援 MIME/BASE64,Quoted-Printable、HZ 和 UUCode 4 種形式的編碼和解碼,
通過一些特殊的算法,此程式還可以解開部分由於位元組高位被屏蔽而形成的死亂碼
(使用其他模式的解碼),另外還提供了很多附加的功能,比如單鍵解碼功能和混合亂碼識別功能,
使得使用本程式解碼變得非常容易和輕鬆,CodeView 是綠色軟體,無需安裝,
只要將得到的壓縮檔解開到一個目錄中即可執行。它有兩種使用方法:

方法一:在有亂碼的視窗中直接按下單鍵解碼快速鍵,預設為 F7,若視窗中的亂碼能被識別,
就會有一個視窗覆蓋目前的亂碼視窗,你可以直接在這個視窗中閱解碼後的內容。
在大多數情況下,筆者建議你使用這個模式。

方法二:將亂碼的內容通過剪貼簿複製到 CodeView 亂碼察看器的源視窗中,
然後你可以試著用不同的解碼模式進行解碼。這種模式解碼將給你更多的選取自由,
並且可以使用一些在單鍵解碼中無法實現的解碼模式(主要是其他模式解碼和UUCode解碼),
對於一些單鍵解碼無法解決的亂碼,你就可以使用此模式來試試解碼。

下載位址:http://www.skycn.com/soft/394.html

2.避免別人收到亂碼信件的方法:

(1)傳送前將信件按7位格式重新編碼

在傳送8位格式的文字檔案時,必須事先進行編碼,將檔案轉換為7位 ASCII 碼或更少位數的格式,
然後才能保證檔案的正確傳輸。收件人收到7位或更少位格式的信件之後,
可以再轉換為8位的格式,這樣就可以正確閱讀了。在信件用戶端軟體中的書寫選項中,
設定預設自動為7位編碼。

(2)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) 作為


預設的信件使用語系,選取 國際設定 為接收的所有信件使用預設的編碼。
(3)傳送重要訊息時先發測試

當你需要傳送重要訊息時,為了確認是否無須編碼即可傳送正文,應該先傳送測試信。
而且還應確定收件人能否對附件檔案進行解碼。若果傳送已經編碼的信件,
則最好加入足夠的 信頭 訊息,以便收件人知道所需的解碼方法。
建議你對 UUENCODE/UUDeview 編碼模式用 UUENCODING 作信頭,
對 Mpack 編碼模式用 Base64 encoding 作信頭。

(4)轉換成合適的內碼

在 E-mail 軟體的書寫選項中,設定預設自動為7位編碼。對用漢字系統編輯的中文信件在傳送前,
最好在固定的簽字欄中註明自己所使用的漢字碼標準(如:GB2312、中文 HZ、GBK);
港澳台及東南亞地區信件作者在使用BIG5碼撰寫完信件、
向內地傳送前要轉換成上述3種簡體國標碼中的一種形式並在簽字欄中註明。
如不轉換則可能無法閱讀,因為國內使用者使用的信件系統有很多是不支援 BIG5 碼的。

(5)利用 附件 功能傳送重要的檔案

信件系統附加這類非標準 ASCII 碼格式的檔案時,附加檔案通常可以自動進行 Base64 模式編碼
(僅對附件部分進行編碼)。在用 附件 模式傳送信件之前,無需進行編碼,否則適得其反。
因為信件軟體能夠自動成功解碼這類 附加 檔案,因此在傳送中文類信件時應該偏好這種方法。

若無法以附件模式傳送檔案,則必須在正文中傳送中文或二進位檔案。若發/收件人之間遠隔萬里,
則傳輸過程中,第8位將可能被截掉。這時最好先在正文中用中文給收件人發一封測試信,
並瞭解對方能否正確收到信件正文。若果第8位被截掉,則收件人將會看到一些亂碼,
而不是上述的 uu/b64/Qp 等格式,而且這種信件幾乎不可恢復。

解決方法:在你所使用的信件系統中,選取其偏好項或選項組態中的 Quoted Printalbe 或 MIME encoding 即可。

3.非中文平台上,使中文電子信件不出現亂碼方法

當對方在沒有中文平台的情況下開啟你發的中文電子信件時,就會出現亂碼。解決辦法有兩種:

(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 中文信件的體積比較大。

4.收信方排除亂碼的方法

請你在 檢視(V) 下拉選單中選中 語系,隨後出現的選單中會內含本系統所能支援的全部漢字標準,
在其中點選信件中所指明的一種。若收到的信件中沒有指明其所使用的漢字標準,
則只可按順序點選,直到信件正文顯示正確為止(數個漢字標準中必有一個前面有「.」標示,
此即你編輯器所用的漢字標準)。若使用的是 Netscape,
可在 Option 選單的 Document Encode 中選取相應的項目即可。

四、關於網頁、文字和文件檔案亂碼的消除方法

大家知道,網頁亂碼是瀏覽器對 HTML 網頁解釋時形成的。若在網頁的代碼中有形如:

(HTML)(HEAD)(META CONTENT=text/html;charset=ISO-8859-1)(/HEAD)....(/HTML)的語句,
瀏覽器在顯示此頁時,就會出現亂碼。因為瀏覽器會將此頁語種辨認為 歐洲語系 。

解決辦法:

1.將語種 ISO-8859-1 改為 GB2312,若是繁體網頁則改為 BIG5。

2.不修改網頁代碼,事先為瀏覽器安裝多語系支援包(例如在安裝 IE 時要安裝多語系支援包),
這樣在瀏覽網頁出現亂碼時,就可以在瀏覽器中選取選單欄下的 檢視→編碼→自動選取→
簡體中文(GB2312),如為繁體中文,則選取 檢視→編碼→自動選取→ 繁體中文(BIG5),
其他語系依此類推選取相應的語系,這樣可消除網頁亂碼現象。

3.利用多內碼顯示平台來轉換內碼。

4.網頁無亂碼儲存的方法是:用瀏覽器開啟網頁時,在 檢視→編碼 中選取 自動選取,
存盤時儲存類型選 Web頁,編碼選取 UNICOD,這樣儲存過的網頁再次開啟時,
在瀏覽器選單 檢視→編碼 中不管選取 簡體中文(GB2312)、
簡體中文(HZ)還是 UNICODE(UTF-8)或繁體中文(BIG5),最終顯示都不會出現亂碼。

Win 9x/2000 中文字、文件檔案的亂碼,一般是繁體中文顯示在簡體中文系統下,
或是在相反的情況造成的。只要把原本是繁體的內碼轉換為簡體內碼(或是相反)就可消除亂碼。
Word 2000 就能勝任這類工作,例如要把繁體中文轉換為簡體中文,方法是:
選取要轉換內碼的檔案,在跳出的對話框中,選取 其他編碼 中的 繁體中文(BIG5)一項,
開啟此檔案時就不會出現亂碼。無亂碼儲存的方法:在儲存時選取 檔案 中的 另存為,
先存為 Word文件,存盤後開啟再存為純文字等其他格式;
你也可以用 Word 2000 的 中文簡繁轉換 工具實現無亂碼儲存,方法是在選單欄中選取 工具→
語系→中文簡繁轉換,內碼轉換後再儲存。金山公司的 WPS 2000 也能轉換內碼,支援 GB2312、
BIG5、GBK 等3種主要的漢字編碼,並可在輸出 RTF、TXT、HTM 格式檔案時對內碼進行轉換。
除此之外,消除這類亂碼還可用內碼轉換工具,
可以對 BIG5(繁體中文)和 GB2312(國標碼、簡體中文)進行相互轉換來消除亂碼。
  最後,台灣出的繁體遊戲一般會出現亂碼,用 w2kxpcjk2 這個工具就可以解決了~
300多K的一個東西,可以去網上搜尋下載~


TOP

學習了。同時還應注意在編程式時,編輯器的不同,也會造成不同成度的亂碼


免費提供網站、論壇克隆!請站內PM

TOP