Python中中文乱码问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中中文乱码问题相关的知识,希望对你有一定的参考价值。

验证中文乱码时:遇到个问题,下面这两种情况有什么不一样

a = '哈哈'
b = a.encode('utf-8')
发现报错

a = u'哈哈'
b = a.encode('utf-8')

"哈哈"前有u和没u有什么区别

参考技术A a ='哈哈'
b = a.encode('utf-8')
以上你的代码是UTF8编码吧,a本来就是UTF8编码,你在给它编码干嘛,encode是编码,decode是解码,你不报错没天理。

a = u'哈哈'
b = a.encode('utf-8')
a是U编码类型也就是你上一个没加U的哈哈的解码,它肯定不会保存!
参考技术B python2里面,默认编码方式是ASCII,加u是强制unicode,所以不加U的时候用UTF-8编码会出错,python3里面已经默认编码是unicode,不需要加u了本回答被提问者采纳

Python 爬虫过程中的中文乱码问题

python+mongodb

 

在爬虫的过程中,抓到一个中文字段,encode和decode都无法正确显示

注:以下print均是在mongodb中截图显示的,在pythonshell中可能会有所不同

比如中文 “余年”,假设其为变量a

1. print a 结果如下:

 

技术分享

使用type查询之后,显示的确是unicode编码(正常情况下讲unicode编码内容直接存入mongodb中是可以正常显示的)

2. print type(a) 结果如下:

技术分享

3. print a.encode(‘utf-8‘) 结果如下:

技术分享

然后查看a的unicode编码,是这种格式  u‘‘\xe4\xbd\x99\xe5\xb9\xb4"

解决办法:

a = a.encode(‘ISO 8859-1‘)

这样将a的由unicode的type变成了str类型的type

然后就可以正确的保存到mongodb中了

 

 

Reference:

http://blog.csdn.net/myheadfirst/article/details/46635197

以上是关于Python中中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

python获取百度贴吧乱码问题?

python中乱码怎么由来与解决方法

如何用python查询mysql乱码问题?

python写文件中文乱码

如何解决Python中文问题

python查询mysql中文乱码问题