解决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将数值型特征进行离散化操作的方法

如下所示: data = np.random.randn(20) factor = pd.cut(data,4) pd.get_dummies(factor) 0 0 0...

解决Django加载静态资源失败的问题

解决Django加载静态资源失败的问题

Django项目中为什么会加载静态时会失败呢? 原因:django部署方式比较特别,采用静态文件路径:STATICFILES_DIRS的部署方式,之前你写的相对路径,绝对路径因为缺少静态...

PYTHON正则表达式 re模块使用说明

首先,运行 Python 解释器,导入 re 模块并编译一个 RE: #!python Python 2.2.2 (#1, Feb 10 2003, 12:57:01) >>...

python实现C4.5决策树算法

python实现C4.5决策树算法

C4.5算法使用信息增益率来代替ID3的信息增益进行特征的选择,克服了信息增益选择特征时偏向于特征值个数较多的不足。信息增益率的定义如下: # -*- coding: utf-...

python常见排序算法基础教程

python常见排序算法基础教程

前言:前两天腾讯笔试受到1万点暴击,感觉浪费我两天时间去牛客网做题……这篇博客介绍几种简单/常见的排序算法,算是整理下。 时间复杂度 (1)时间频度一个算法执行所耗费的时间,从理论上是不...