Py基础篇---编码
在Py中有很多的编码方式,我在这篇文字中便一个个的列举出来他们的区别,以及他们之间的应用和转换传输相关的信息。那么我们废话不多说,开始说正题!
一:ASCII码(纯英文码)
A:0000 0010 8位 1个字节
二:unicode(中文和英文)
A:0000 0001 0000 0010 0000 0100 0000 0100 32位 4个字节
中:0000 0001 0000 0010 0000 0100 0000 0100 32位 4个字节
三:utf-8(中文和英文)
A:0000 0010 8位 1个字节
中:0000 0010 0000 0100 0000 0100 24位 3个字节
四:gbk(中文和英文)
A:0000 0010 8位 1个字节
中:0000 0100 0000 0100 16位 2个字节
那么在这4种常用的编码类型中我们以后使用要注意哪些地方呢?我来一一列举出来吧!
1,编码之间的二进制部分可以互相识别,但是呢,会产生乱码现象。所以不可以随便的把他们转换
2,储存传输不能使用uincode,要想储存和传输只能使用:utf-8 utf-16 gbk gb231 ascii 等类型
那么值得一提的是,在Py3环境中呢:
str是使用unicode编码的,也就是不能用于传输和储存的。这时候就要转换成Bytes类型。
Bytes类型是一种数据类型,以utf-8和gbk等编码类型编码。传输和储存的时候要先把这个Unicode类型转化成此类型,那么我们先看一下两者的编码和表现方式有什么别
str的英文表现方式:
str = 'abc'
编码方式:unicode
bytes的英文表现方式:
str = b'abc'
编码方式:utf-8 gbk gb231等
str的中文表现方式:
str = '中国'
编码方式:unicode
bytes的中文表现方式:
str = b'\xe4\xb8\xad\xe5\x9b\xbd'
编码方式:utf-8 gbk gb231等
说了这么多!那么我们如何转换中文的呢??使用的其实是一个叫做encode()的方法,我们看一下代码
s2 = '中国' s22 = s2.encode('utf-8') print(s22)
像这样的,输出的就是:b'\xe4\xb8\xad\xe5\x9b\xbd'
也就是encode()这个方法呢,告诉我们,代码该怎么才能把这个类型转换成括号里想要的类型。是不是很方便呢?
好了,那么我们编码方面的问题到这里也就告一段落了!笔者自知水平一般能力有限!哪里有错误欢迎大家指正,不吝赐教!

浙公网安备 33010602011771号