首页 > 技术文章 > 字符编码

mayu-huangdi 2021-11-10 15:49 原文

字符编码

image

什么是字符编码

计算机只认识0,1二进制,通过制定字符和二进制数对应起来的表来把人类文字翻译成二进制数同计算机交流。

字符编码发展史

计算机最早诞生于美国,它以8个bit位代表1个字节,即可以代表256中字符。于是就有了ASCII码表。
image

  但是对于其他国家的字符ASCII码表完全不够,所以各国都制定了本国的编码表。比如中国的gbk、日本shift-JIS、韩国Euc_kr等。
  即使是如此,假如我在本国编写了一个文本文件发送给别国的朋友,那么就会出现乱码的情况。随之unicode应运而生,简称万国码,即它拥有对应了所有不同语言文字的数字编码表。这样无论你是哪国所在的编写的文件,发送给别国的朋友打开时,也不会有任何乱码的情况。
  unicode解决了统一问题,但是它在存储字符时都是2个字节,这就使得原本只需1个字节存储的字符体积变大,在读取存储速度上有明显的下降。面对这种情况就诞生了精简版unicode格式utf8。英文1个字节,中文3个字节。

字符编码方法

# 编码encode 
str = '谢'
print(str.encode('gbk'))  # b'\xd0\xbb' 返回二进制
# 解码decode
str = '谢'
res = str.encode('utf8')
res.decode('utf8')  # 谢

推荐阅读