(Python)文本和字节序列

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会报错误



个人理解,如有错误欢迎指出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章