欢迎各位兄弟 发布技术文章
这里的技术是共享的
UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position
相信类似的问题大家都会遇到吧,要么是乱码,要么是直接这种类型的报错,其实归根究底是Python字符编码和解码的问题,比如同样的python文件我在window下运行报上面的错误,ubuntu下就没事,都是这种编码解码原因。
先说下解决的办法,具体的原因可以参考这个篇博客,参考的原因解释链接,介绍的非常详细,我也不重复造轮子了就。
如果在window下运行,原因:
对于Unicode字符,需要print出来的话,由于本地系统是Windows中的cmd,默认codepage是CP936,即GBK的编码,所以python解释器需要先将上述的Unicode字符编码为GBK,然后再在cmd中显示出来。但是由于该Unicode字符串中包含一些GBK中无法显示的字符,导致此时提示“’gbk’ codec can’t encode”的错误的。
解决方法1:
在转换的时候必需进行一些前置动作
string.replace(u’\xa0’, u’ ‘)
将’\xa0‘替换成u’ ‘空格,这个\xa0就是那个html中的&nbps空格
解决方法2:
在对unicode字符编码时,添加ignore参数,忽略无法无法编码的字符,这样就可以正常编码为GBK了
print 你的字符串.encode(“GBK“, ‘ignore’);
来自 http://blog.csdn.net/circle2015/article/details/52994042?locationNum=12&fps=1