首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

享学课堂浅谈Python字符编码如何转换秘诀

python有strobject和unicodeobject两种字符串,都可以存放字符的字节编码,但是他们是不同的type,这一点很重要,也是为什么会有encode和decode。

encode和decode在pyhton中的意义可表示为

encode

unicode------------------------->str

decode

几种常用法:

str_string.decode('codec')是把str_string转换为unicode_string,codec是源str_string的编码方式

unicode_string.encode('codec')是把unicode_string转换为str_string,codec是目标str_string的编码方式

str_string.decode('from_codec').encode('to_codec')可实现不同编码的str_string之间的转换

比如:

>>>t='长城'

'\xb3\xa4\xb3\xc7'

>>>t.decode('gb2312').encode('utf-8')

'\xe9\x95\xbf\xe5\x9f\x8e'

str_string.encode('codec')是先调用系统的缺省codec去把str_string转换为unicode_string,然后用encode的参数codec去转换为最终的str_string.相当于str_string.decode('sys_codec').encode('codec')。

unicode_string.decode('codec')基本没有意义,unicode在python里只用一种unicode编码,UTF16或者UTF32(编译python时就已经确定),没有编码转换的需要。

注:缺省codec在site-packages下的sitecustomize.py文件中指定,比如

importsys

sys.setdefaultencoding('utf-8')

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171211A0V9T300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券