在nlp中我们总会在各种场景下处理汉字,尤其在预处理阶段。
一般常见的报错为“…ordinal not in range(128)”
那么常用解决方法的是以下两个:
1. 在代码开头
#-- coding:utf-8 --
2. 使用sys
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)
以上两个步骤是比较常规的操作,也能解决99%场景问题,但是总有一些小问题不容易解决,比如utf-8和汉字直接拼接,将汉字以“汉字的形式”写入、以汉字为key获取字典中的value等问题(问题出现的规律还未整理出来)。不过出现一些奇怪的编码问题可以尝试以下两种:
3.使用decode、encode
text.decode(‘utf-8’)
4.使用json
json.dumps()
欢迎有更系统的解决方案或者解释问题观点的同学们指点~