打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何解决Python编码错误”一文

 你又没有遇到过,在写代码最后运行的时候,出现运行不了,在解析其他文件的时候出现报错,那么你是如何解决的呢?今天小编为大家带来一个技术性问题是怎么解决的过程。用python解析文件(文件中含有中文),并写入其他文件时报错:

    UnicodeEncodeError:'ascii'codeccan'tencodecharacters

    经过google大神的指导,确定以下解决方式:

    #coding:utf-8importsysreload(sys)sys.setdefaultencoding('utf-8')

    疑问:为什么需要reload呢?

    grep-r-i'setdefaultencoding'/usr/lib/python2.7输出结果为:

    /usr/lib/python2.7/site.py:sys.setdefaultencoding(encoding)#NeedsPythonUnicodebuild!

    /usr/lib/python2.7/site.py:#Removesys.setdefaultencoding()sothatuserscannotchangethe

    /usr/lib/python2.7/site.py:ifhasattr(sys,"setdefaultencoding"):

    /usr/lib/python2.7/site.py:delsys.setdefaultencoding

    Binaryfile/usr/lib/python2.7/site.pycmatches

    把delsys.setdefaultencoding防止用户在改变defaultencoding,这个原因暂时真不知。。

    对于windows平台,上面的办法真不行,对于python2.x中,总是存在这个问题,在Python3.x的时候这真不是个事,

    对于windows平台,

    文件开头声明为#coding=utf-8,

    写入字符串时,转换编码为GBK

    file.write(str.encode('gbk'))

    还要注意的是:open(....)不能有任何运算,一次只能写入一行,所以要用+来连成一行

    #coding=utf-8

    当这些问题都解决以后,你就会发现,你已经在块成为一个高手了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python中sys.setdefaultencoding('utf-8')的作用
处理:UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-15: ordinal not in range(
为什么在sys.setdefaultencoding之前要写reload(sys)
Python 3 教程一:入门
python sys模块的常见用法汇总
python之sys模块详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服