在说明python的中文分词库jieba的时候,苏南大叔使用的是python3执行的相关代码。那么在python2下,这个jieba的测试代码,也是可以运行的。不过,却可能会遇到两个编码有关的错误提示。本文中,苏南大叔就还是以jieba中文分词这个测试代码为例,说明python2中可能遇到的编码有关错误提示的解决方案。

苏南大叔:python2 中有关文件中文编码的处理方案 - python2-encoding
python2 中有关文件中文编码的处理方案(图3-1)

本文测试环境是:python2.7jieba0.39

错误提示一

源码文件自身编码问题导致的错误提示:

SyntaxError: Non-ASCII character '\xe8' in file test.py on line 5, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

苏南大叔:python2 中有关文件中文编码的处理方案 - python2-encoding-1
python2 中有关文件中文编码的处理方案(图3-2)

解决方案就是在顶部增加个编码说明,不过在官方说明里面,这个说明有很多种写法,苏南大叔就不具体探讨了。大家可以去下面的页面中,选一个自己喜欢的写法。

下面的这个,是苏南大叔选择的一个方案。其中一个方案而已,上述网址中有更多的方案。

# coding=utf-8

错误提示二

下面的这个错误提示,苏南大叔认为要归结于python2这个编译过程。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

这个错误,需要设置另外的编码utf-8。在源码里面增加的python语句如下:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

苏南大叔:python2 中有关文件中文编码的处理方案 - python2-encoding-2
python2 中有关文件中文编码的处理方案(图3-3)

总结

python2在未来的一段时间内,还会活跃在编程的舞台。不过,既然是过去时了,那么就让他过去吧。

更多苏南大叔的python经验文字,请点击下面的链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   python    jieba

本站的忠实读者小伙伴,正在阅读下面这些文章: