admin 发表于 2018-1-1 21:08:49

使用UTF-8编码和解码

对字符串进行处理时,并不需要在意 Python 中 Unicode 字符的存储细节。
但当需要与外界进行数据交互时则需要完成两件事情:
• 将字符串编码为字节;
• 将字节解码为字符串。
如果Unicode包含的字符种类不超过64000种,我们就可以将字符ID统一存储在2字节中。遗憾的是, Unicode 所包含的字符种类远不止于此。诚然,我们可以将字符 ID 统一编码在3或4字节中,但这会使空间开销(内存和硬盘)增加3到4倍。
两位为 Unix 开发者所熟知的大神 Ken Thompson 和 Rob Pike 在新泽西共用晚餐时解决了这个问题,他们在餐桌垫上设计出了 UTF-8 动态编码方案。这种方案会动态地为每一个Unicode 字符分配1到4字节不等:

• 为 ASCII 字符分配 1 字节;
• 为拉丁语系(除西里尔语)的语言分配 2 字节;
• 为其他的位于基本多语言平面的字符分配 3 字节;
• 为剩下的字符集分配 4 字节,这包括一些亚洲语言及符号。
UTF-8 是 Python、 Linux 以及 HTML 的标准文本编码格式。这种编码方式简单快速、字符覆盖面广、出错率低。在代码中全都使用 UTF-8 编码会是一种非常棒的体验,你再也不需要不停地转化各种编码格式。

admin 发表于 2018-1-1 22:30:18

一些关于utf-u有用的链接:
• Unicode HOWTO(https://docs.python.org/3/howto/unicode.html)
• Pragmatic Unicode(http://nedbatchelder.com/text/unipain.html)
页: [1]
查看完整版本: 使用UTF-8编码和解码