python中的编码

编码

ascii码

            一个字符占8位,用一个字节表示
            A:00000010 8位 一个字节
Unicode
   一个字符占32位,用四个字节表示
   A :00000000 00000001 00000010 00000100 32位 四个字节
   中:00000000 00000001 00000010 00000110

utf-8
   A:00000010 8位 一个字节
   中:00000000 00000001 00000110 24位 三个字节

gbk:
   A:00000010 8位 一个字节
   中:00000000 00000110 16位 两个字节

注意:
          1. 各个编码的二进制不能互相识别,会产生乱码
          2. 文件的储存、传输,不能是Unicode (只能是utf-8/16/gbk/gbk2312/ascii码进行存储和传输)

          3. 字节是个单位,字符是看到的最小元素

小数据池

小数据池:创建范围之内的数字或者字符串共用一个内存地址,节省内存
数字的范围:-5~256
字符串范围:
1. 不能含有特殊字符
2. s*20还是同一个地址,s*21以后都是两个地址

 

 

python3中
字符串在内存中使用Unicode储存的
bytes类型编码方式:utf-8,gbk,gb2313,ascii
对于英文:
                str:

                         表现形式 s='alex'
                         编码方式 010101010 unicode
                bytes:

                         表现形式 s=b'alex'
                         编码方式 000101010 utf-8/gbk
对于中文:
                         str:

                                表现形式 s='中国'
                                编码方式 010101010 unicode
                        bytes:

                               表现形式 s=b'x\e91\e91\e01\e21\e31\e32'
                               编码方式 000101010 utf-8/gbk....
将str转换成bytes类型(传输和存储必须是bytes类型)

s1='alex'
s2=s1.encode('utf-8')
print(s2) #b'alex'

 

posted @ 2018-10-15 11:54  洛水卿卿  阅读(265)  评论(0编辑  收藏  举报