用Python寫過處理文本經常會遇到需要decoding或者encoding, 尤其是處理中文的時候。
encoding的問題處理起來是個髒活兒,報錯不太容易看懂,網上相關資料不太好查。有同感?請繼續讀下去。
常規做法是讀取文件的時候立刻decode, 所有的處理工作都用unicode,寫會文件的時候encode. 但是等到讀取的時候在處理的代碼讀/寫起來都很別扭,感覺像穿上鞋以後襪子滑下來了…Python 3.1.1以上的版本解決了該問題。在Python 3.1.1中,打開文件可以加入encoding的參數:
file = open(filename, encoding='xxx')啊,這樣看起來終於舒坦了。 不同寫如下的code了
file = open(filename)
for line in file:
decoded_line = line.decode('xxx')
do something else
提倡使用utf8