星期二, 8月 11, 2015

Visual Studio 2015程式檔編碼相容問題

最近試了Visual Studio 2015,發現若不是UTF-8編碼的cs檔案,常常在編譯時會發生錯誤。可參考黑暗大的 潛盾機-解決VS2015程式檔BIG5相容問題 。VS2015的UTF-8檔案要用有BOM才會正常。

想起來我之前也有做類似的東西,原本放在Google Code的Chinese Autoconvert,現在放在BitbucketGithub。原本希望拋磚引玉,沒想到沒什麼人用,所以只好自己動手把功能補足。這次改版過了好幾年,所以也改成使用較新式的寫法,若之後還要改,會改成符合Python3的版本,這次仍維持在Python 2。

usage: g2butf8.py [-h] [-r] [-nb] [-nobom] [-x extension [extension ...]]  [-t type] [-u userdic] [-nu]  files [files ...]

positional arguments:
  files                 會自動偵測編碼,再轉換成有BOM的UTF-8

optional arguments:
  -h, --help            show this help message and exit
  -r, --recursive       包含子目錄(預設不包括)
  -nb, --nobackup       不要產生.bak備份檔 (預設有)
  -nobom, --nobom       不要產生BOM標題 (預設有)
  -x extension [extension ...]
                        副檔名, (預設為所有檔案)
  -t type, --type type  轉換方式: none 只轉成utf-8 不做其他轉換, g2b 簡轉繁 , g2bdic  簡轉繁再加上詞彙轉換
  -u userdic, --userdic userdic
                        使用者字典檔名,預設使用 userdic.txt
  -nu, --nouserdic      不使用自訂字典檔
                        (預設有,使用userdic.txt)

由於這程式當初是只做為轉換追劇字幕檔轉換,所以並沒有只轉換utf-8的功能。只有本Blog的讀者才會看到type none的選項,其他的用戶要等下次改版才會放到文件內。


我下的指令是 python g2butf8.py -x cs -nb -t none [放程式的目錄]

Windows的用戶請使用黑暗大的程式,在下敝人小弟我不保證Python在Windows能完全正常執行。