亂碼指的是電腦系統不能顯示正確的字元,而顯示其他無意義的字元或空白,如一堆ASCII代碼。這樣所顯示出來的文字統稱為亂碼。[1]
亂碼是因為「所使用的字元的原始碼在本地電腦上使用了錯誤的顯示字庫」,或在本地電腦的字庫中找不到相應於原始碼所指代的字元所致。不同國家和地區的文字字庫採用了相同的一段原始碼,或是原始檔中因為檔案受到破壞,致使電腦預設提取的原始碼錯誤,或是電腦沒有安裝相應字庫,都有可能產生亂碼。
例如,微軟編譯器產生「燙燙燙」「屯屯屯」亂碼,編碼字元集轉換產生的「錕斤拷」「毺絞銝」「脣銝餌」亂碼。[2]如果是台灣(BIG-5)會顯示「昍昍昍」,日本(Shift-JIS)會顯示「フフフフフフ」。
可能的產生原因
- 字型檔案(font file)不對。
- 來源編碼錯誤,或檔案受到破壞。
- 早期單位元組的應用程式在打開雙位元組語言的檔案時不能正確辨識文字的分割,在換行的地方把一個字從中分成兩段,導致緊接在後面的整個一行全部都是亂碼。
- 低階版本的應用程式不能辨識高階版本的程式建立的檔案。
可能的解決方法
- 轉換編碼。一般可試Big5、GBK、UTF-8(Unicode的一種應用方式,包括世界上主要的文字)三種,如涉及的不是中文,可以再試JIS(日文)、KR(韓文)及其他文字編碼。徹底的解決方法是雙方使用同一編碼系統,如UTF-8,只要用戶有對應的字型檔案就可以正確的顯示文字。實際上要統一編碼系統還要克服各種客觀的困難,現時只有靠軟件(如Microsoft AppLocale)有更高的解碼能力。
- 因繁簡編碼不通用導致的亂碼,於系統的其他日期、時間與地區設定中,將非Unicode程式的使用語言更改為繁體/簡體,或能解決。
- 轉換字型。如果解碼正確而出現錯誤文字,有可能是字型檔案中沒有相對應的字元,可嘗試轉換字型檔案。
- 如果本來該顯示出漢字的,卻變成數字,如最欣賞相中拉(最欣賞相中拉)等Unicode代碼,可以把這部分抄出來,獨立儲存成html檔, 再用瀏覽器打開解碼。或可以直接使用JavaScript作解讀︰
alert("最欣賞相中拉");
- 其他。有時解碼的方法要視乎軟件和實際環境,及不斷嘗試才能解碼,特別在不知本來是用哪種編碼系統時。
- 有時輸入漢字時也會出現亂碼,不過這種情況很少出現。最大的原因是輸入法所用的編碼,與經編輯器輸出的字型編碼不符所致,可嘗試轉換字型來解決。例如把GBK編碼的輸入法裝到只支援Big5的系統上,是不能正確顯示所輸入的字的;必需選擇Big5編碼的輸入法,或把輸入法裝到GBK的系統中。
- 有關外文所引致的亂碼,只有轉換支援某外文的字型檔案才能解決。
參見
參考
- ↑ Schäfer, Ingo. Premodern Chinese Written Language, an Introduction.[永久失效連結]
- ↑ 紅猴子. "燙燙燙屯屯屯" 那些事 . 知乎專欄