阅读量

原创教程,严禁转载。引用本文,请署名 Python中文网, http://www.zglg.work


Unicode, UTF-8, ASCII

昨天文章发出来后,有几个读者问我,编码这块怎么掌握,感觉总是很模糊,就知道个utf-8编码,到底如何掌握。

我其实了解也不深刻,把我知道的字符编码主要知识点,总结如下:

  1. Unicode 是最常用的一个字符集,只规定字符的编码,开头是'\u',如'\u4e25'对应字符是,\u005c'表示反斜杠,详细编码和字符对应表可参考:https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8

  2. ASCII编码一共规定了128个字符的编码,是美国人上世纪60年代制定的,记住只包括128个字符。1个字节能表示256个不同值,但只包括128个,所以第一位统一为0,后七位用来表示字符。

  3. 另一个常识:英语用上面ASCII编码的128个符号编码就够了,但其他语言,128个符号是不够的!!!

  4. 汉字多达10万不同字符。一个字节只能表示256种符号,肯定不够。那怎么办?必须使用多个字节表达一个符号

  5. 如果使用2个字节表示一个符号,可能性有:256 x 256 = 65536

  6. 上面提到Unicode只是一个字符集,不管存储实现它们的事情。同一个字符使用不同的存储方法,解析出来就会有很大问题。所以,急需要一种统一的编码方式。

  7. UTF-8编码被互联网广泛使用,它是Unicode字符集的一种极佳的存储方法。首先它是变长度,存储ASCII字符时,用1个字节存储它;存储汉字时,使用3个字节。这种变长度存储,大大提高了存储效率。

  8. UTF-8有一套设计精良的编码规则,感兴趣的可以去看看。


Python 20个专题完整目录:

Python前言

Google Python代码风格指南

Python数字

Python正则之提取正整数和大于0浮点数

Python字符串

CSV读写乱码问题

Unicode标准化

Unicode, UTF-8, ASCII

Python动态生成变量

Python字符串对齐

Python小项目1:文本句子关键词的KWIC显示

Python列表

Python流程控制

Python编程习惯专题

Python函数专题

Python面向对象编程-上篇

Python面向对象编程-下篇

Python十大数据结构使用专题

Python包和模块使用注意事项专题

Python正则使用专题

Python时间专题

Python装饰器专题

Python迭代器使用专题

Python生成器使用专题

Python 绘图入门专题

Matplotlib绘图基础专题

Matplotlib绘图进阶专题

Matplotlib绘图案例

NumPy图解入门