bytes、str與unicode
阿新 • • 發佈:2019-01-27
style pytho 使用 代碼 something col code clas 接受
1、Python3字符序列的類型
bytes -> 原始的8位值(既字節)
str -> Unicode字符
2、Python2字符序列的類型
str -> 原始的8位值(既字節)
unicode -> Unicode字符
即Python3的bytes對應Python2的str,而Python3的str對應Python2的unicode
寫代碼的時候不要對字符編碼做任何的假設。
編寫兩個輔助函數來進行轉換。
接受str或bytes,總是返回str:
def to_str(bytes_or_str): if isinstance(bytes_or_str, bytes): value= bytes_or_str.decode(‘utf-8‘) else: value = bytes_or_str return value
接受str或bytes,並總是返回bytes:
def to_bytes(bytes_or_str): if isinstance(bytes_or_str, str): value = bytes_or_str.encode(‘utf-8‘) else: value = bytes_or_str return value
3、在Python3中通過內置的open函數獲取文件句柄會默認使用utf-8編碼格式來操作文件
如果要寫入二進制數據,把encoding參數設為b
按下面的方式來使用open函數
with open(‘path/filename‘, ‘wb‘) as f: do something
(讀取文件的時候也會有同樣的問題,這時候使用‘rb‘)
bytes、str與unicode