由于该编码和解码是翻译当然,你需要人类的语言和计算机通信起来的字典,这本字典的名字字符集,从最早的ASCII是现在最常见的Unicode,它们基本上是相同的,但只有两个词典的厚度不同。26只包含ASCII拉丁语,阿拉伯数字,以及总共128个英国标点字符,因此仅需要(没有填充)可以被存储在一个字节,并且数据被由Unicode字形此外覆盖,视觉编码的方法中,标准字符编码,还包括在所述字符属性,诸如小写字母,包含总共1.1M的人物,但现在只有110K位置填满了。

存储在字符位置(或对应于该通用数字计算机)称为码位(码点),例如,代码比特,在ASCII字符的字符集是:

ASCII字节将能够为只有一个代码攒够所有位,字节和Unicode需要适应一些,但什么样的程序来实现特定的使用这种关系的Unicode映射,也有很多不同的选择(或规则)中,例如,最常见的(Python是默认值)UTF-8,以及UTF-16,UTF-32等。,对这里的深度不同的规则未启动。当然,在ASCII和Unicode和许多其他字符集和编码方案,如中国GB2312编码,BIG5复杂的人物等等之间,这并不影响我们的编码和解码过程的理解。

Unicode的*错误

理解的字节,编码和解码后的字符串,让我们尝试手动制造上述两种,第一种是编码错误:

由于UTF-8为ASCII兼容性,? 在ASCII编码; 但你不能在ASCII编码,因为它超出了128个字符的ASCII字符集,它导致? ; 在码位是GB2312?随着不同的UTF-8,但你仍然可以正确编码。所以,如果有,你使用了错误的字典中的表演,角色不能被翻译正确翻译成代码位!

看看解码错误:

一般ASCII字符集的后续出现是兼容的,它们可以被认为是ASCII的子集,可以通过ASCII被解码(编码),通常也可以使用其它方法; 对于关系不存在不编码的子集,强制解码可能导致错误或出现乱码!

实践策略

如上所述,在操作的时候都明确原则后,应如何避免错误或出现乱码它?

  1. 方向清楚地记得编码和解码;
  2. 操作尽可能在Python UTF-8,然后输入或输出时根据是否二进制编码确定需求:

参考


本文链接:Python 中 Unicode 的正确用法

您可能也会喜欢

友情链接:

心经唱诵 大悲咒注音 经文