背景:
由于最近公司的业务需要,对数据库中的数据进行文章分类并打上对应的标签属性。最后选择调用百度云的人工智能文本分析aip接口。
百度云的文本分析接口文档如下:
需要接收一个content和title字段作为文本分析。
正常情况下,读取数据库content和title字段直接传入就可以了。要命的是,当初产品决定content内存入的是html文本信息,方便前端页面的展示。
所以我们需要先对读取出的html文本进行处理。
结果,就出了幺蛾子了!!!
处理后的文本传入 aip接口运行时爆出bug:
UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\xa0’ in position 148
翻译过来的意思就是: UnicodeEncodeError unicode编码错误: ‘gbk’编解码器无法在148位编码字符u’\xa0’
出现问题的原因是:本身Unicode类型的字符中,包含了一些无法转换为GBK编码的一些字符。比如说u’\xa0’
网上的解决方法有很多, 怎么舒服怎么来,选用最简单的方法就是去除u’\xa0’,
text.replace(u’\xa0’, u’ ')
问题完美解决了。perfect!!