字符编码

一.字符编码

   什么是字符编码,我们在与计算机的交互中,为了让计算机明白我们人类的语言,需要将语言以以莫种特定的方式(其实就是把字符对应特定的二进制数)翻译成计算机语言(二进制数)。这个过程就是就是字符编码。

二.编码表的发展

  字符是通过对比编码表来转换成二进制的,所以不同的编码表就会转换成不同的二进制

  ①最先的存在的编码表是ASCll表,最多只有8位来表示一个字节,所以最多能表示256个字符。只规定了字母数字和一些特殊符号的对应关系。

  ②计算机的发展,因为许多国家的国语并不存在ASCll表中,都开发了属于自己的编码表,比如说我国的gbk2313(到后来的gbk,和gbk18030)是用2个字节来表示一个汉字。其他国家也有着属于本国的编码表,比如日本的Shift_JIS,韩国的Euc-kr。

  ③因为编码表的不同,不同国家的文件编译后就会出现乱码,为了解决这个问题,出现了标准,unicode,它包含了所有的语言,所以它又被称为万国码。unicode中,汉字和英文字母都是用两个字节来表示的(某些生僻字用四个字节),unicode指定了标准,解决了乱码的问题。

  ④统一了标准后,因为程序中大都是由英文字母组成的,而unicode中字母占了两个字节,相比于ASCll码大大的增加了文件的占用空间,造成了传输上的低效。所以又出现了‘可变长编码‘’’UTF-8编码(与unicode是同一张编码表),它把常用的英文字母编码为一个字节,汉字编码成三个字节,少数生僻字被编码成4-6个字节。(可以把ASCll表看成是UTF-8的一部分)

三.编码解码

  u''(unicode)与b''(bytes)之间的转换

  bytes(u'',encoding='utf-8')等同于u''.encode('utf-8')   #encode()就是编码,把unicode中的字符串成utf-8的二进制编码

  str(b'',encoding='utf-8')等同于b''.decode('utf-8')  #decode()就是解码,utf-8的二进制编码的解码成unicode中的字符

  

 

posted @ 2019-03-26 15:28  Mr-Bear  阅读(284)  评论(0编辑  收藏  举报