- bytes 实例包含的是原始数据,即 8 位的无符号值(通常按照 ASCII 编码标准来显示)。
- str 实例包含的是 Unicode 码点(code point,也叫作代码点),这些码点与人类语言之中的文本字符相对应。
- str 可以与 str 进行运算,bytes 可以和 bytes 进行运算,但是 str 和 bytes 之间不可直接运算。
要把 Unicode 数据转换成二进制数据,必须调用 str 的 encode 方法。要把二进制数据转换成 Unicode 数据,必须调用 bytes 的 decode 方法。
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我们要提醒自己注意当前操作系统默认的编码标准(可以执行下述命令查看)
python3 -c 'import locale;print(locale.getpreferredencoding())'