标签:序列 eth class something 数据 python3 unicode 返回 col
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‘)
标签:序列 eth class something 数据 python3 unicode 返回 col
原文地址:https://www.cnblogs.com/walthwang/p/10326123.html