Python的字符编码

Posted lioushell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的字符编码相关的知识,希望对你有一定的参考价值。

字符编码

  因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。

  由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

  中文编码问题一直是程序员头疼的问题。Python2的默认编码是ASCII码,Python3的默认编码是UTF-8

一、python2 与  python3   通用的编码方式

  1、UTF-8编码方式:  

    英文 :A  00100000              8位      1字节

    中文: 中     00000001   00000010  00001110  24位  3字节  

   2、GBK编码方式:   

    英文: A  00000110                    8位  1字节

    中文: 中     00000010  00000110          16位  2字节

   各个编码之间二进制,是不能互相识别的,会产生混乱

   文件之间的储存、传输、不能用Unicode码(因为所占用的空间太大),只能用UTF-8、UTF-16、GBK、GB2312、ASCII码

  3、str在Python中是用Unicode码,还有一种是bytes 类型

    1、英文

     str:

      表现形式   s = ‘alex‘

      编码方式   0101010101  unicode

     bytes:

      表现形式  s = b‘alex‘ 

      编码方式  00101010  utf-8  gbk  

    2、中文

     str

      表现方式  s= ‘中国‘ 

      编码方式  01010110  utf-8  gbk

     bytes

      表现方式  b‘x\e91\e91\e01\e21\e31\e32

      编码方式  01001100  utf-8  gbk

 

以上是关于Python的字符编码的主要内容,如果未能解决你的问题,请参考以下文章

python基础12 字符编码

python——字符编码

python——字符编码

python——字符编码

python字符编码

python 字符编码