python基础 - 字符串的编码

作者: hanl001 | 来源:发表于2017-01-09 11:07 被阅读0次
    • 几种编码
      由于计算机只能识别0和1,为了把各种语言转化为机器能够识别的语言,就需要用到不同的编码。而计算机在设计的时候就定义了8bit为一个byte(字节)
      ASCII码: 由于计算机起源于美国,而英文字母加上数字、标点等一个字节完全够用,著名的ASCII码由此而生:用一个字节,也就是8位二进制数的不同组合来表示英文中说用到的所有字符。
      然而...
      随着计算机的发展,流入各个国家,显然一个字节对于很多语言来说是完全不够用的,也因此各国在保持ASCII原有编码不变的情况下,进行了各自的扩充,例如我国的GB2312。
      各国各自一套标注带来的结果就是,单有不同语言混在一起的时候,不管你选择哪一国的编码都无法对二进制全部进行解码,也就是会出现乱码。为了解决这个问题,我们熟悉的Unicode码得以诞生
      Unicode码: 将各国语言统一编码,形成的一套国际编码
      问题:其他编码为了兼容ASSII码,做法是保持低八位字节不变,其他为补0。这样带来的问题就是无意义的内存损耗。
      UTF-8编码:UTF-8的出现完美的解决这个问题,UTF-8并不是国定的字节长度,当它表示中文的时候占两个字节,当它表示英文时就占一个字节。灵活的内存分配,节省了很多没必要的内存消耗
    • Python的相关函数
      ord()和chr()
      ord():将字符串转换为Unicode码的十进制数字
      chr():将十进制数字形式的Unicode码转换为对应字符串
      注: 在Python3中,字符串以Unicode编码
      encode()和decode()
      encode():将字符串按照不同的编码方式按字节进行显示为字节流
      decode():将逐个字节显示的字节流,按不同编码方式进行重新编码
      注: python中用b''的包裹方式,表示字节流
      len()
      计算字符串的字符个数,或者计算字节流的字节数

    相关文章

      网友评论

        本文标题:python基础 - 字符串的编码

        本文链接:https://www.haomeiwen.com/subject/rnrnvttx.html