Python3中的字符串是Unicode字符串而不是字节数组
用\u及4个十六进制的数字可以从Unicode256个基本多语言平面中指定某一特定字符。
Python为此而设定的转义序列以\u开头,后面紧跟8个十六进制的数字,其中最左一位需位0
- 使用UTF-8编码和解码
对字符串进行处理时,并不需要在意Python中的Unicode字符的存储细节,我们只需要完成两件事情
1.将字符串编码为字节;
2.将字节解码为字符串
- 编码
是将字符串转化为一系列字节的过程。字符串的encode()函数将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gb2312编码。
a='u\1204'
print(type(a))
print(type(a.encode('utf8')))
print(a.encode('utf8'))
<class 'str'>
<class 'bytes'>
b'uP4'
将u转换为b
- 解码 从外界文本源(文件、数据库、网站、网络API)获得所有文本都是经过编码的字符串。我们只要解码就可以。
解码是将字节序列转化为U你从的字符串decode(解码)的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。
print(type(a.encode('utf8').decode('utf8')))
<class 'str'>
print(a.encode('utf8').decode('utf8'))
uP4
编码->解码=u>b>正常可见字符
注意:
保存进txt文件即其余都要用u或者字符串 不能用b会报错误
个人理解,如有错误欢迎指出