怎么理解Unicode,utf-8,ASCII这些编码?

Python与算法社区

共 793字,需浏览 2分钟

 · 2021-04-14

昨天文章发出来后,有几个读者问我,编码这块怎么掌握,感觉总是很模糊,就知道个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有一套设计精良的编码规则,感兴趣的可以去看看。

浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报