python_lioaxuefeng

Python字符编码

2018-08-03  本文已影响0人  Whalesea

‘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')

上一篇下一篇

猜你喜欢

热点阅读