Pythonprint编码转变默认编码

Python print编码有很多的应用范围,在这里我们先来看看如何进行默认编码转变成为系统编码。希望大家有所收获。什么情况用encode,什么情况又是decode呢,刚开始总是被搞昏。

创新互联专业为企业提供谢家集网站建设、谢家集做网站、谢家集网站设计、谢家集网站制作等企业网站建设、网页设计与制作、谢家集企业网站模板建站服务,10年谢家集做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

其实各种本地字符集的英文名是Coded Character Set,要转换为Coded,肯定是要encode了,同样,从里面解出来也应该叫decode……

decode就是把其他编码转换为unicode,等同于unicode函数;encode就是把unicode编码的字符串转换为特定编码。在pyshell里继续:

a是Str类型的,所以再用encode会报错。用print输出时会调用默认编码转换为系统编码?

Python print编码

 
 
 
  1. >>> a.decode("gb2312") 
  2. u'\u6211' 
  3. >>> print a.decode("gb2312") 
  4. >>> a.encode("gb2312") 
  5. Traceback (most recent call last): 
  6. File "", line 1, in ? 
  7. UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in 
    position 0: ordinal not in range(128) 

b是unicode类型,打印时需要先encode(编码)成系统编码

Python 代码

 
 
 
  1. >>> print b.encode("gb2312") 
  2. >>> b.encode("gb2312") 
  3. '\xce\xd2' 
  4. >>> b.decode("gb2312") 
  5. Traceback (most recent call last): 
  6. File "", line 1, in ? 
  7. UnicodeEncodeError: 'ascii' codec can't encode character 
    u'\u6211' in position 0: ordinal not in range(128) 

Python print编码里默认的encode和decode是strict模式,所以会直接抛出Error,而Java里是默认replace模式,所以在处理servlet时经常会看到一串?????在decode时传入第二个参数errors为'replace'可以和Java相同,但总是没成功,还不知道为什么。

分享文章:Pythonprint编码转变默认编码
URL网址:http://www.csdahua.cn/qtweb/news10/247860.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网