字 AI-SRTSub

字幕亂碼是怎麼來的

同一段位元組按 UTF-8 讀和按 GBK 讀,出來兩套完全不同的字。亂碼長什麼樣,就是被按錯了哪一步的直接證據。

更新於 2026-10-17問題指南

檔案沒壞,是讀錯了

字幕檔案裡存的是位元組。要把位元組變成字,必須知道它按什麼編碼寫的 —— 這一步選錯了,出來的就是亂碼。檔案本身一個位元組沒少,換一種編碼再讀一次,字就回來了。

所以亂碼分兩件事:認出它原本是什麼編碼,和存成播放器認得出的編碼。前者靠試讀打分,後者靠另存。兩件事修的是不同的問題。

五種長相,五種成因

亂碼不是隨機長出來的,它的長相直接暴露了成因:

  • 成片帶音標的字母(`ä½ å¥½`):UTF-8 的中文被當成單位元組編碼讀了 —— 中文在 UTF-8 裡三位元組一個字,單位元組讀會把每個位元組各當成一個字母
  • 漢字連成片卻沒有一個常用字(`浣犲ソ`):UTF-8 被當成 GBK 讀了 —— 兩位元組一組重新配對,配出來的都是生僻字
  • 一堆貨幣符號、數學符號:位元組落到了符號區,常見於被當成 Mac 羅馬或 Latin-1 系讀
  • 混進控制字元:位元組落進了不可見的控制區,螢幕上表現為空白或方塊
  • 方框問號 `�`:這是替換字元,不是亂碼 —— 它表示「這兒原本有個字,但讀的時候已經丟了」
診斷卡:逐條列出亂碼痕跡的類型
診斷把亂碼按成因分成幾類,不是籠統一句「是亂碼」

替換字元為什麼修不回

替換字元是關鍵分界線。出現 `�` 說明在更早的那一步(通常是某個程式把它讀了一遍又存了一遍)位元組就已經被丟掉了,丟掉的部分沒有任何記錄。這時候倒推沒有依據 —— 誰也修不回來。

所以修復頁面會分兩種情形處理:傳檔案時原始位元組還在,可以逐個編碼試讀;貼上來的內容裡若已經出現替換字元,就直說「修不回來,請上傳原始檔案」。

順帶一個反過來的情形:內容讀起來完全正常,播放器裡卻還是亂碼。這不是檔案的錯,是播放器按錯了編碼。改檔案沒有用,另存一份帶 BOM 的 UTF-8 或 GBK 交給它就行。

上傳區:拖放上傳與貼上兩個入口
能傳檔案就傳檔案 —— 位元組在,才有得修

修的時候在比什麼

工具把每種可能的編碼都試一遍,然後給每份結果打分:常用字占多少、有沒有成串的音標、有沒有成串的符號、漢字是不是連片生僻。分數最高的那份排在最前面。

分數沒有明顯更好就不推薦 —— 寧可告訴你「這份讀起來是正常的」,也不拿一個勉強像人話的結果糊弄你。被人連錯兩次的(存錯一次、又修錯一次),會對頭幾個候選再倒推一層。

候選清單:按打分排序,每條標註編碼對
候選按打分排序,分數不占優就不推薦

存對編碼才算完

修完的文字還要存成播放器認得出的編碼。Windows 上的播放器常常靠 BOM 認編碼,存一份帶 BOM 的 UTF-8 最省事;老設備或某些播放器認 GBK。可選編碼:UTF-8、UTF-8(帶 BOM)、GBK、Big5、Shift_JIS、EUC-KR;裝不下會提示換一種(比如 GBK 裝不下韓文)。

結果區:另存為編碼下拉與下載按鈕
存成播放器認得出的編碼,亂碼才算真的解決了

相關工具與指南

完整操作見 亂碼修復怎麼用;SRT 檔案裡到底存了什麼見 SRT 檔案裡寫了什麼;編碼正常但內容髒(水印廣告、聽障提示)用 字幕清洗。

全程在瀏覽器裡完成,無需安裝。

打開亂碼修復器

相關指南