解决python2.7 查询mysql时出现中文乱码

yipeiwu_com6年前Python基础

问题:

python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码

---
可能情况:

1.mysql数据库各项没有设置编码,默认为'latin'
2.使用MySQL.connect的时候没有设置默认编码
3.没有设置python的编码,python2.7默认为'ascii'
4.没有解码
---

解决方法:

1.设置mysql的编码

ubuntu执行下列语句:

** sudo vim /etc/mysql/my.cnf **

然后在里面插入语句:

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci 

退出 vim
重新启动mysql:

** sudo service mysql restart **

2.在code中设置MySQLdb的连接编码参数

db=MySQLdb.connect(user='...',db='...',passwd='...',host='...',charset='utf8')

3.在code中设置python默认编码

# -*-coding:utf-8 -*-
import sys 
reload(sys)
sys.setdefaultencoding('utf-8')

4.记得要解码

t = cursor.fetchall()
s = t[0][1].decode('utf-8')

over

相关文章

python中迭代器(iterator)用法实例分析

本文实例讲述了python中迭代器(iterator)用法。分享给大家供大家参考。具体如下: #--------------------------------------- #...

Python3.x和Python2.x的区别介绍

1.性能Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。Py3.1性能...

python如何使用jt400.jar包代码实例

这篇文章主要介绍了python如何使用jt400.jar包代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 jt400...

用tensorflow实现弹性网络回归算法

本文实例为大家分享了tensorflow实现弹性网络回归算法,供大家参考,具体内容如下 python代码: #用tensorflow实现弹性网络算法(多变量) #使用鸢尾花数据集,...

numpy中实现ndarray数组返回符合特定条件的索引方法

numpy中实现ndarray数组返回符合特定条件的索引方法

在numpy的ndarray类型中,似乎没有直接返回特定索引的方法,我只找到了where函数,但是where函数对于寻找某个特定值对应的索引很有用,对于返回一定区间内值的索引不是很有效,...