解决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 tkinter模块弹出窗口及传值回到主窗口操作详解

Python tkinter模块弹出窗口及传值回到主窗口操作详解

本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作。分享给大家供大家参考,具体如下: 有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置。有两种选择 一、标...

YUV转为jpg图像的实现

调用opencv库,将yuv图像转为jpg图像。 代码如下: # define _CRT_SECURE_NO_WARNINGS #include <string> #in...

python 实现得到当前时间偏移day天后的日期方法

如下所示: import datetime #以当前时间作为起始点,days=-7向前偏移7天,days=7向后偏移7天 time_now = datetime.datetime.n...

pyinstaller打包单个exe后无法执行错误的解决方法

1、执行环境说明 python版本3.7 直接使用pip进行安装pywin32、pyinstaller pip install pywin32 pip install pyinstall...

python3.4用循环往mysql5.7中写数据并输出的实现方法

如下所示: #!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" """ python study...