Python2和Python3的str/unicode/bytes整理
2021-12-06 23:12
Python2 两种表示字符序列的类型
str : 原始的8 位值(默认)
unicode : Unicode的实例包含Unicode字符
Python3 两种表示字符序列的类型
str : Unicode 的实例包含 Unicode 字符 (默认)
bytes : 原始的8 位值
Unicode是表现形式,utf-8 是存储形式,utf-8 虽然是使用最广泛的编码,但也仅仅是 Unicode 的一种存储形式罢了。
比如测试脚本test.py
#coding:utf-8
s="马"
print(s)
print(type(s))
s=u"马"
print(s)
print(type(s))
print(type(s.encode("utf-8")))
python2下执行
# python test.py
马
<type 'str'>
马
<type 'unicode'>
<type 'str'>
python3下执行
马
<class 'str'>
马
<class 'str'>
<class 'bytes'>
相关参考:
https://blog.csdn.net/weixin_42232219/article/details/89369259
https://www.cnblogs.com/CheeseZH/p/12592892.html
https://blog.csdn.net/zhusongziye/article/details/84261211
https://www.cnblogs.com/tsingke/p/10853936.html