二次亂碼長什麼樣子
修復前
ä¸Âæ–‡ 高雄 客戶 你好 æ¼¢å— 手機
修復後
中文 高雄 客戶 你好 漢字 手機
為什麼會轉兩次
在 UTF-8 裡,一個中文字佔 3 個位元組。程式若把這些位元組當成 Windows-1252(Latin-1)來讀,一個字就變成 3 個怪字元,例如 中 變成 ä¸。如果把這個結果再存成 UTF-8,之後又被同樣讀錯一次,每個字元會再被拆開,ä¸ 就變成 ä¸Â。
第二次出錯常見於這些情況:
- 資料庫搬遷時,WordPress 或 SQL 備份檔在搬遷前就已經是亂碼。
- CSV 用 Excel 開啟後存檔,之後又用錯誤的設定匯入了一次。
- 腳本或 API 對本來就是 UTF-8 的文字又轉了一次碼。
常見樣貌一覽
二次亂碼
ä¸Âæ–‡ 高雄 客戶 æ¼¢å— 手機 電話 訂單
正確文字
中文 高雄 客戶 漢字 手機 電話 訂單
如果疊加三次,亂碼會更長,Mojibuster 同樣能自動還原。只錯了一次的情況,請看亂碼是什麼。
為什麼尋找取代不夠用
用尋找取代,你得知道每一層、每個字對應的亂碼,漏掉一個就修不乾淨,還可能誤改正常的文字。Mojibuster 的做法是反推出原始位元組,確認結果是合法的 UTF-8 之後,才取代那一處。
- 把文字貼到上面的輸入框,或把檔案拖進來。
- Mojibuster 自動判斷轉碼了幾次,最多還原三層。
- 在變更內容裡檢視每一處更動,然後複製結果或下載檔案。
本來就正確的文字維持不變,同一個檔案裡亂碼行和正常行混在一起也沒問題。如果要轉換的是 Big5 編碼的檔案,請看 Big5 轉 UTF-8。
常見問題
怎麼判斷是二次亂碼?
二次亂碼比一次亂碼更長,而且反覆出現 Ã、â€、 這類字元。較短的 䏿–‡ 屬於一次亂碼,見亂碼是什麼。
最多能還原幾層?
最多三層。實際上更多層幾乎不會出現。
只有一部分文字是二次亂碼怎麼辦?
沒問題。Mojibuster 逐處修復,正常的部分不會被更動。
可以先檢查結果嗎?
可以。變更內容會列出每一處修復及其行號,確認後再複製或下載。