|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
小知识:CentOS(CommunityEnterpriseOperatingSystem,中文意思是:社区企业操作系统)是Linux发行版之一。
字符串在Python外部的表现是unicode编码,是以,在做编码转换时,平日须要以unicode作为中央编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另外一种编码。
decode的感化是将其他编码的字符串转换成unicode编码,如str1.decode(gb2312),表现将gb2312编码的字符串str1转换成unicode编码。
encode的感化是将unicode编码转换成其他编码的字符串,如str2.encode(gb2312),表现将unicode编码的字符串str2转换成gb2312编码。
是以,转码的时刻必定要先弄明确,字符串str是甚么编码,然后decode成unicode,然后再encode成其他编码。
转码的时刻不由要看代码自己的编码、文件的编码,还要看掌握台的编码,这就是为何异样是一段代码,在分歧的体系(编码分歧的)中会涌现乱码的缘由,如:
我的eclipse外面代码为utf-8编码的。然后我如许写代码
s="你好"
s=s.decode(gb2312).encode(utf-8)
prints
报错:
UnicodeDecodeError:gb2312codeccantdecodebytesinposition2-3:illegalmultibytesequence
缘由:由于我的文件为UTF-8编码的。所以你想用gb2312将其转成unicode是弗成能的。
所以准确的写法应该是:
s="你好"
prints
s=s.decode(utf-8).encode(utf-8)要用UTF-8来做编码
prints
发明打印出来的是乱码那只能解释一件工作就是我的eclipse掌握台是GB2312的编码!
小知识:Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 |
|