日期:2014-05-16  浏览次数:20572 次

用Python访问mysql乱码的解决方法
使用MySQLdb访问mysql数据库插入数据后为乱码。为支持多种语言从数据库到前台代码一律使用UTF-8编码。下面是记录解决乱码问题的流水账。

1 修改mysql配置
在mysql安装目录下建立etc目录,复制my-small.ini到etc目录,并命名为my.ini
在my.ini文件末尾增加
[mysqld]
default-character-set=utf8
[client]
default-character-set=utf8

2 修改mysqld启动参数
增加mysqld的启动参数--character-set-server  utf8
mysqld --console --verbose  --character-set-server  utf8
另外--character-set-server可以简写为 -C
既:mysqld --console --verbose  -C  utf8

在Python代码中设置访问数据库编码为UTF-8
cursor = conn.cursor()
cursor.execute("SET NAMES 'utf8'")
cursor.execute("SET CHARACTER_SET_CLIENT=utf8")
cursor.execute("SET CHARACTER_SET_RESULTS=utf8")