首页
学习
活动
专区
工具
TVP
发布

关于unicode字符串写入python报错的问题

write方法的参数类型是str,str是二进制流(不包含编码信息),当你给出一个unicode对象时,会执行str函数转换成str类型再送给write方法。unicode转str包含一次编码,如不指定则默认使用ascii编码,而ascii编码集里汉字字符是没有对应的,所以报错。

然后代码首行的编码标记是用来告诉解释器这个程序的源代码是用什么编码存的。

正确姿势是在代码里指定编码。比如在open里指定,或者在write的时候手动把unicode对象通过encode方法指定编码产生str。

就是说写成fp.write(s.encode('utf8'))。注意unicode对象用encode是有意义的,str对象在py2里允许你对str对象使用encode,然而这是对指定了default encoding的情况下才有效的,因此不推荐新手对str直接encode。

python 2 +linux

这样做

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券