码迷,mamicode.com
首页 > 编程语言 > 详细

python编码问题

时间:2018-08-26 11:50:19      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:python   code   直接   类型   一个   utf-16   转换   文件的   utf-8   

一、各种编码所用字节。

ascii
A : 00000010 8位 一个字节

unicode A : 00000000 00000001 00000010 00000100 32位 四个字节
中:00000000 00000001 00000010 00000110 32位 四个字节


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


gbk A : 00000110 8位 一个字节
中 : 00000010 00000110 16位 两个字节
1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等),因为unicode占用空间过大。

二、python3中的编码方式:

str 在内存中是用unicode编码,不能够直接去储存和传输。
bytes类型:与str基本一致,只是编码方式不一样。
对于英文:
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。。。。

三、编码。encode 将unicode转换为utf-8或GBK (表现形式上是str转换为bytes)

s1 = "alex"
s11 = s1.encode("utf-8")
s12 = s1.encode("GBK")
s2 = "中国"
s22 = s2.encode("utf-8")
s23 = s2.encode((‘GBK‘))
print(s11,s12,s22,s23)

 

python编码问题

标签:python   code   直接   类型   一个   utf-16   转换   文件的   utf-8   

原文地址:https://www.cnblogs.com/qukouxiaoxue/p/9536527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!