Notepad++ 中文亂碼的解決方法

Notepad++ 開啟檔案後中文變成亂碼,或出現 xA4、xE4 這樣的黑底小方塊?表示目前選擇的編碼和檔案不一致。通常只要在 編碼 選單中選對一項就能解決,前提是分清楚該用哪一項。

支援文字與以下檔案:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

例如 Excel 匯出、資料庫備份、字幕或網站程式碼。

修復

  1. 拖入檔案或貼上文字
  2. 自動修復
  3. 複製或下載
或把檔案拖到這裡
  • 不必上傳。 檔案直接在瀏覽器中修復,不會離開你的裝置。

  • 伺服器位於歐盟。 Mojibuster 在 芬蘭(歐盟)的伺服器上運作,受《一般資料保護規則》(GDPR)規範。 GDPR 全文(EUR-Lex,英文)

先看目前的編碼

Notepad++ 在右下角的狀態列顯示目前用哪種編碼讀取檔案,例如 UTF-8、UTF-8-BOM 或 ANSI。在繁體中文 Windows 上,ANSI 指的就是 Big5。編碼 選單中有兩類選項,很容易搞混:

  • 選單上半部的 ANSI、UTF-8、UTF-8-BOM 等:只是用另一種編碼重新讀取現有的位元組,檔案本身不變。
  • 選單下半部以「轉換」開頭的選項:把文字用新的編碼重新寫入,存檔後檔案就改變了。
  • 選單中的字元集子選單:可以指定 Big5、GB2312 等特定編碼來讀取檔案。

情況一:中文變成一堆怪字

檔案是 UTF-8,Notepad++ 卻用 ANSI(Big5)讀取了,你好 會變成 雿末 之類的字。在 編碼 選單中選擇 UTF-8,中文馬上就會正常顯示。這時千萬不要選「轉換為 UTF-8」:那會把亂碼當成真正的文字存下來,而且 Big5 讀不懂的位元組已經被換成 �,存檔後就救不回來了。

情況二:出現 xA4 這樣的黑塊

檔案是 Big5(ANSI),卻被當成 UTF-8 讀取,無法解讀的位元組就顯示成 xA4 這樣的黑塊。先在 編碼 選單中選擇 ANSI(或在字元集中選擇 Big5),讓中文正常顯示,再選擇轉換為 UTF-8,存檔後檔案就是 UTF-8 了。不想手動操作,也可以用 Big5 轉 UTF-8 直接轉換。

情況三:亂碼已經存進檔案裡

Notepad++ 有時會把短的 Big5 檔案誤判為西歐語系的 Windows-1252,中文就顯示成 ½Ķ¤w¸g 這類符號。如果在這個狀態下存檔,亂碼就會被寫進檔案裡,這時選單中的任何選項都不能可靠地解決,尤其是正常的行和亂碼的行混在一起時。把檔案拖到上方的框中:Mojibuster 只修復亂碼的部分,並顯示每一處變更。

Big5 被誤判為 Windows-1252 後存檔的檔案

亂碼

½Ķ¤w¸gÀˬd¡A¥x¥_¡B¥x¤¤¡B°ª¶¯¥þ³¡¥¿½T¡C

修復後

翻譯已經檢查,台北、台中、高雄全部正確。

新檔案一律用 UTF-8

在 Notepad++ 的偏好設定中,把新文件的預設編碼設成 UTF-8。要用 Excel 開啟的檔案,選 UTF-8-BOM 比較好,詳見 Excel 開啟 CSV 亂碼。給 Windows PowerShell 5.1 用的指令碼也需要 BOM,請見 PowerShell 中文亂碼。

常見問題

UTF-8 和 UTF-8-BOM 有什麼差別?

兩者儲存文字的方式完全相同。UTF-8-BOM 會在檔案開頭多寫 3 個看不見的位元組,Excel 和一些舊軟體靠它辨識 UTF-8。

為什麼 Notepad++ 有時會判斷錯編碼?

沒有 BOM 的檔案裡不含編碼資訊,Notepad++ 只能猜。檔案越短、中文越少,越容易猜錯。

可以一次轉換多個檔案嗎?

Notepad++ 本身只能靠巨集或外掛。在 Mojibuster 中可以把檔案一個接一個拖進來,每個只要幾秒鐘。

更多說明