Python字符编码
‘unicode' 是python字符串(str) 内置的编码格式,与之对应的字节序列(bytes)是以二进制存储各类标准字符串的源码
unicode标准可以处理很多种文字,但是消耗存储空间较大,在硬盘存储以及网络运输中,往往并不使用unicode,而是使用utf-8格式
这就涉及到编码以及解码的过程:
因为py3中,内置是以unicode作为字符串的基础编码标准,编码方法-encode-也是作用于str(unicode)
str_example = 'this is a example'
str_for_transport = str_example.encode('utf-8)
这样字符串就转化成了可以在硬盘,网络中传输的格式
print(str_for_transport)
在shell中,或这直接输出utf-8的文件格式,你会发现是 bytes类型的字节序列,
b'....'
这样的二进制数据就可以以相对较小的占用,在文件中传输
反过来说,python在读取文件,读取网络信息时,接受的字符串可能时utf-8格式的,正常处理就需要解码,此时就需要decode方法
b'..'.decode('该文件所用编码格式-默认utf-8')
decode产生对象是固定的-unicode字符串(str)
这就是编码和解码的基础信息
总结
unicode是中间件,方便我们在python中进行文字处理
要进行传输,我们需要进行编码encode到适合的编码标准
要进行接受,我们需要对接受的信息进行解码decode,已得到我们能正常处理的unicode字符串-str
例子
#我有一个字符串
myStr = '中文'
#我想把他传输到中文网上,我需要把他转化成gb2312格式
myStr_GB =myStr.encode('gb2312')
#中文网想对我的字符串进行处理,需要进行解码处理
hisStr =myStr_GB.decode('gb2312')