Python编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python编码相关的知识,希望对你有一定的参考价值。

2.7:
1.Unicode统一了语言,常用两个字节表示一个字符

eg:读取记事本中的内容时 计算机先将utf-8字符转换为Unicode到内存中,保存时再将Unicode转换为utf-8保存到文件。
eg2:浏览网页时,服务器将Unicode转换为utf-8再传输到浏览器

2.Unicode编码成utf-8,一个中文Unicode字符变为三个utf-8字符,一个中文Unicode字符变为两个gbk字符
>>> uABC.encode(utf-8)

ABC
>>> u中文.encode(utf-8)
\xe4\xb8\xad\xe6\x96\x87

>>> len(uABC)
3
>>> len(ABC)
3
>>> len(u中文)
2
>>> len(\xe4\xb8\xad\xe6\x96\x87)
6

>>> u中文.encode(gb2312)
\xd6\xd0\xce\xc4

反过来,把UTF-8编码表示的字符串xxx转换为Unicode字符串uxxx用decode(utf-8)方法:

>>> abc.decode(utf-8)
uabc
>>> \xe4\xb8\xad\xe6\x96\x87.decode(utf-8)
u\u4e2d\u6587
>>> print \xe4\xb8\xad\xe6\x96\x87.decode(utf-8)
中文

3.Python 3版本中,字符串是以Unicode编码的
2版本示例:
>>> ord() Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> ord() TypeError: ord() expected a character, but string of length 2 found
3版本示例:
>>> ord() 20013 Python3以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如: >>> ABC.encode(ascii) bABC >>> 中文.encode(utf-8) b\xe4\xb8\xad\xe6\x96\x87 不用在中文前加u了

 



以上是关于Python编码的主要内容,如果未能解决你的问题,请参考以下文章

使用非utf-8编码在Python中解析XML

从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration

Python之如何优雅的重试

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段