1. 程式人生 > >Python 字符編碼

Python 字符編碼

nic reader n) 文件類型 Coding utf-8 猜想 所有 utf8編碼

采用標準庫codecs模塊

codecs.open(filename, mode=‘r‘, encoding=None, errors=‘strict‘, buffering=1)
1 import codecs
2 f = codecs.open(filename, encoding=‘utf-8‘)

使用上邊這種方式讀進來utf-8文件,會自動轉換為unicode。但必須明確該文件類型為utf8類型。如果是文件中有漢字,不是一個字節一個字節地讀而是整個漢字的所有字節讀進來然後轉換成unicode(猜想跟漢字的utf8編碼有關)。

下邊的代碼也是一種使用codecs的讀寫方式

#coding=utf-8
import codecs

fin = open("test.txt", ‘r‘)
fout = open("utf8.txt", ‘w‘)

reader = codecs.getreader(‘gbk‘)(fin)
writer = codecs.getwriter(‘gbk‘)(fout)

data = reader.read(10)
#10是最大字節數,默認值為-1表示盡可能大。可以避免一次處理大量數據
while data:
    writer.write(data)
    data = reader.read(10)

Python 字符編碼