在 Python 中,編碼(Encoding)是將字符串轉換為字節序列的過程,而解碼(Decoding)則是將字節序列轉換為字符串的過程。在進行編碼和解碼操作時,需要指定使用的字符集(Charset)。
Python 中常用的字符集有 ASCII、UTF-8、GBK 等,其中 ASCII 是最常用的字符集,它只能表示英文字母、數字和一些特殊字符。而 UTF-8 則是一種可變長編碼,能夠表示幾乎所有的 Unicode 字符。
下面是一些常用的編解碼函數:
encode(): 將字符串編碼為指定字符集的字節序列,例如:
s = "Hello, 世界!"
b = s.encode('utf-8')
print(b) # 輸出:b'Hello, \xe4\xb8\x96\xe7\x95\x8c!'
decode(): 將字節序列解碼為指定字符集的字符串,例如:
b = b'Hello, \xe4\xb8\x96\xe7\x95\x8c!'
s = b.decode('utf-8')
print(s) # 輸出:Hello, 世界!
open(): 打開文件并返回文件對象,可指定文件的編碼格式,例如:
with open('file.txt', 'r', encoding='utf-8') as f:
s = f.read()
print(s)
在這個例子中,我們打開了一個名為 file.txt 的文件,并使用 utf-8 編碼格式讀取文件內容。
需要注意的是,編碼和解碼操作可能會出現編碼錯誤(UnicodeDecodeError 或 UnicodeEncodeError),這種錯誤通常是因為使用了錯誤的字符集進行編解碼,或者原始數據包含了非法的編碼字符。在進行編碼和解碼操作時,應該盡可能使用標準字符集,并保證數據的正確性和完整性。