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

yipeiwu_com7年前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

相关文章

Django自定义过滤器定义与用法示例

本文实例讲述了Django自定义过滤器定义与用法。分享给大家供大家参考,具体如下: 一、自定义过滤器的介绍 前面我们就介绍过过滤器其实就是一个函数,把要过来的字段传递到一个函数内,进行加...

Python遍历目录的4种方法实例介绍

1.os.popen运行shell列表命令 复制代码 代码如下: def traverseDirByShell(path):     for f in os...

Python文件打开方式实例详解【a、a+、r+、w+区别】

本文实例讲述了Python文件打开方式。分享给大家供大家参考,具体如下: 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以...

Python深入06——python的内存管理详解

Python深入06——python的内存管理详解

语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。这里以Python语言为例子,说明一门动态类型...

解决pycharm py文件运行后停止按钮变成了灰色的问题

解决pycharm py文件运行后停止按钮变成了灰色的问题

这两天被这个问题折磨得要死,把pycharm卸载了还是没解决,后来终于在一篇博客中看见,然后终于解决了 问题界面如下: 1. 每次运行后都会跳出一个 python console,并且...