Python – 文字檔簡繁轉換程式

在 Windows 下面,有個好用的工具叫做 ConvertZ 可以轉換檔案編碼,而且除了轉換編碼以外,它也會自動轉簡體繁體文字,我常常拿這個程式來轉換一些文字檔,像是字幕,說明檔…等等。

最近我家裡的電腦改用 Mac OS X ,發現 Mac OS X 缺少了滿多我生活中必要的小工具程式 (要不然就是要收費) ,所以我就只好自力救濟,寫隻程式來暫解一下。

當然, Mac 下也有 iconv 這類的工具程式可以轉換文字的編碼,但它只會做編碼的轉換,沒辦法做簡體繁體文字的替換,舉個例子:

圖片中的 gbk 是個檔案,內容是「日观邻全赵,星临俯旧吴。鬲津开巨浸,稽阜镇名都」,編碼是 gb2312 ,所以在 utf8 的 console 下面看起來會是亂碼,經過 iconv 轉換之後,就可以正常顯示,但有個很大的問題,就是文字依然是「簡體」。雖然我對簡體字不會過敏,但是日常生活還是習慣看繁體字,所以這並不完全符合我的需求。 (備註)

晚上找了差不多半小時,發現都沒有符合我的需求的程式,所以我決定乾脆自己寫一隻比較快。

請參訪專案網頁:convert2utf8 – Google Code. 下載解壓縮後,安裝方法:


chmod +x convert2utf8.py
sudo cp convert2utf8.py /usr/bin/
sudo ln -s /usr/bin/convert2utf8.py /usr/bin/convert2utf8

說明:


convert2utf8 [filename] {source file encoding}

預設來源編碼是 gbk , code page 列表

使用方法 – 轉換 /Users/roga/srt_files/ 下面的 kunfu.srt (簡體, gb2312 編碼) 到 utf8 編碼:


cd /Users/roga/srt_files/
convert2utf8 kunfu.srt

檔案會被轉換成 utf8 編碼,文字會被替換為繁體字,而原本的檔案則會複製一份 .bak 檔在原目錄。

為了貼近我的使用方式,必須先切換到目標目錄下才能使用,要不然會發生檔案找不到的情況,我自己會用一段時間試試看,如果不好用我會再進行修改讓程式支援絕對路徑的參數

使用方法 – 轉換 /Users/roga/srt_files/ 下面的 kunfu.srt (繁體, big5 編碼) 到 utf8 編碼:


cd /Users/roga/srt_files/
convert2utf8 kunfu.srt big5

使用方法 – 轉換 /Users/roga/srt_files/ 下面的 kunfu.srt (日文, shift_jis 編碼) 到 utf8 編碼:


cd /Users/roga/srt_files/
convert2utf8 kunfu.srt shift_jis

以上大概是使用方法,除了 gbk 編碼的檔案以外,其他編碼檔案的文字都不會執行簡繁互換,只會轉換編碼,並且把原本的檔案則會複製一份 .bak 檔在原目錄。

另外簡繁文字對照表 (本程式中的 s_str, t_str) 來自 深藍UTF-8正體簡體轉換函數 1.0

Posted in Programming
10 comments on “Python – 文字檔簡繁轉換程式
  1. visorjoe says:

    太棒了,不過要用輸入的方式使用有點麻煩,可否改成像ConvertZ,用複製貼上的功能就很棒了

  2. bingo says:

    你好,有没有UTF-8之间,简体与繁体字之间的转换

  3. Alvin says:

    好用,多謝晒!!!

  4. sskes says:

    先謝謝您的script,真的很方便
    但是有一點小狀況,跟上一位發問的問題是一樣的。

    我一個 ass 字幕 原本編碼就是utf8 ,只是是簡體字,encoding 參數給 utf8 ,都沒辦法成功轉換 ,我也試了給 gbk and big5
    需求變成 source and target 都是 utf8 ,編碼不轉換,只是簡體用字換成繁體用字 而以
    錯誤訊息是這個 錯誤 – 無法正確解讀來源檔案,請指定正確的編碼。

    我是今天才去 google code 下載的,所以應該是最新的一版,不曉得這是什麼問題,謝謝您。

    • roga says:

      我這兩天會檢查一下,不好意思造成您的困擾 ^^”

      • sskes says:

        不會造成我的困擾,只是有人願意寫這個script ,我是使用者,我一定會貪婪的要求功能,就看開發者有沒有空去增加功能或是一直維護下去。
        所以不管有沒有處理好,還是謝謝你。現在這個程度已經很好用了。

        我也是玩 linux 的,server , databases , php
        python 還沒碰過,但是source 大概看得懂,我也是 coder ,也知道找bug很煩,也會被使用者一直要求功能…

        無論如何,謝謝你的 script.

      • roga says:

        Hi, 最近幾天比較忙,你可以先參考看看

        [完美簡繁轉換]

        http://blog.tenyi.com/2011/08/blog-post.html

        那應該是個很棒的 solution ^^

  5. shyhjie says:

    希望blog有按贊功能。還有自動把朋友加入roga粉絲團的功能。

1 Pings/Trackbacks for "Python – 文字檔簡繁轉換程式"
  1. […] 本程式修改自roga 的程式 […]

Leave a Reply

Your email address will not be published.