2012年12月30日

Mac OS X 電影字幕 SRT 檔案轉碼(BIG5 to UTF-8)使用 iconv

網路下載的電影繁體中文字幕通常是 BIG5 編碼,這在 Mac OS X 下使用許多播放器開啟,字幕顯示都會變成亂碼,就像以下的擷取畫面。
繁體中文(BIG5編碼)的 SRT 字幕呈現亂碼

亂碼主要的原因是播放器預設是以 UTF-8 編碼讀取,雖然有些播放器可以切換編碼選項,只要調成 BIG5 或 MS950 即可;但是有愈來愈多播放器或多媒體機上盒都是預設為 UTF-8,所以也有編碼轉換的需求。

在 Mac OS X 或 Linux 系統下,轉換編碼(BIG5 to UTF-8)並不需要藉助第三方工具,使用內建的 iconv 指令就能達成任務,這需要在終端機下操作。

使用 iconv 指令進行轉碼

查看 iconv 支援哪些編碼格式:

iconv -l

因為我們已經知道原始編碼是 BIG5,所以可以用 -f 指定來源編碼,進行轉碼測試:

iconv -f big5 the_movie.cht.srt



iconv -f big5 -t utf-8 the_movie.cht.srt

(-t 指定轉換目的編碼,因為系統預設本來就是 UTF-8,故可省略)

先測試一次的原因是轉碼可能會失敗,例如上述指定 BIG5 轉換成系統預設(UTF-8),可能會因為某些中文字元沒有對應字碼,造成轉換失敗,訊息類似以下。

iconv: the_movie.cht.srt:57:10: cannot convert

這種情況我們可以用 -f big5-2003 或 -f cp950 重新測試一次:

iconv -f big5-2003 the_movie.cht.srt



iconv -f cp950 the_movie.cht.srt

確認字幕轉換完整後,再存成新檔案。

iconv -f big5-2003 the_movie.cht.srt > the_movie.cht.utf8.srt



iconv -f cp950 the_movie.cht.srt > the_movie.cht.utf8.srt

* CP950 與 Big5-2003 是擴充 BIG5(大五碼),所以字集比較完整。

經過 iconv 轉碼後,影片播放就能正確顯示中文字幕

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!