python中encode和decode的区别,encode和decode的用法
常见的字符串编码类型:utf-8、gb2312、cp936、gbk等。
在python中,我们使用decode()和encode()进行解码和编码。
在python中,unicode类型被用作编码的基本类型。也就是
解码编码
字符串- unicode -字符串
U=u Chinese #显示指定的unicode类型对象ustr=u.encode(gb2312) #用gb2312编码对unicode对象进行编码str1=u.encode(gbk) #用gbk编码对unicode对象进行编码str2=u.encode(utf-8) #用utf-8编码对unicode对象进行编码u1=str.decode(gb2312)#用gb2312编码对string str进行解码得到unicode U2=str . decode( utf-8 )# if
好消息来了,对,就是python3。在python3的新版本中,unicode type被取消,取而代之的是使用unicode字符的string type (str)。字符串类型(str)成为基本类型,如下所示,而编码类型成为字节类型(bytes ),但两个函数的用法保持不变:
解码编码
字节-字符串(unicode) -字节
U= Chinese #指定字符串类型对象ustr=u.encode(gb2312) #对gb2312中的U进行编码,得到字节类型对象stru1=str.decode(gb2312)#对gb2312中的字符串str进行解码,得到字符串类型对象u1u2=str.decode(utf-8)#如果对utf-8中的str进行解码得到的结果,则无法恢复原来的字符串内容。不可避免地,文件读取问题:
如果我们读取一个文件,文件保存时使用的编码格式决定了我们从文件中读取的内容的编码格式。比如我们从记事本新建一个文本文件test.txt,编辑内容,保存时注意。可以选择编码格式。比如我们可以选择gb2312,那么使用python读取文件的内容如下:
F=open (test.txt , r) s=f.read () #读取文件的内容。如果编码格式未知(识别的编码类型与使用的系统有关),读取将在这里失败假设文件以gb2312编码保存 u=s.decode(gb2312) #解码文件保存格式的内容,获得unicode字符串 ,然后我们可以对内容执行各种编码转换。str=u . encode( UTF-8 )# Convert to UTF-8编码字符串str str 1=u . encode( gbk )# )# Convert to gbk编码字符串str1sr1=u.encode (UTF-16)字符串str1 python转换为UTF-16编码为我们提供了读取文件的打包编解码器。这个包中的open()函数可以指定编码的类型:
import CSF=codecs . open( text . text , r ,encoding= UTF-8) #文件的编码格式必须事先知道,其中utf-8content=f.read()#如果打开时使用的编码与文件本身的编码不一致,则错误f.write()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。