1 保证MySQL的输出没有乱码的三步
1 Python文件设置编码 utf-8 (文件前面加上 # coding=utf-8)
# -*- coding: UTF-8 -*-
参考:http://www.runoob.com/python/python-chinese-encoding.html
2 Python连接MySQL是加上参数 charset=utf8
参考:http://blog.csdn.net/zhaihaifei/article/details/53907106
3 MySQL数据库charset=utf-8
参考:http://blog.csdn.net/zhaihaifei/article/details/51659134
mysql编码、数据表编码查看和修改总结:http://www.2cto.com/database/201406/307694.html
2 使用DBUtils建立数据库连接池
必须添加
charset='utf8'
#-*- coding: utf-8 -*-
"""
数据库管理类
"""
import MySQLdb
from DBUtils.PooledDB import PooledDB
#自定义的配置文件,主要包含DB的一些基本配置
from config import configs
#数据库实例化类
class DbManager(Singleton):
def __init__(self):
connKwargs = {'host':configs['DB_HOST'], 'user':configs['DB_USER'], 'passwd':configs['DB_PASS'], 'db':configs['DB_NAME'], 'charset':"utf8"}
self._pool = PooledDB(MySQLdb, mincached=0, maxcached=10, maxshared=10, maxusage=10000, **connKwargs)
def getConn(self):
return self._pool.connection()
_dbManager = DbManager()
例2:
connKwargs = {'host': conf.db['host'], 'user': conf.db['user'],
'passwd': conf.db['password'], 'db': 'autoscalingport',
'cursorclass': mdb.cursors.DictCursor, }
self._pool = PooledDB(mdb, mincached=0, maxcached=10, maxshared=10,
maxusage=10000, charset='utf8', **connKwargs)
参考:
http://blog.csdn.net/zhaihaifei/article/details/54016939
3 编辑器设置
Pycharm 设置步骤:
- 进入 file > Settings,在输入框搜索 encoding。
- 找到 Editor > File encodings,将 IDE Encoding 和 Project Encoding 设置为utf-8。
http://blog.csdn.net/waleking/article/details/7524741
3 Python连接MySQL是加上参数 charset=utf8
参考:http://blog.csdn.net/zhaihaifei/article/details/53907106