Python连接MySQL中文乱码解决方案:SQLOBJECT与MySQLdb配置详解

周予安
周予安
发布时间:2026-10-13 | 6人浏览过
原创

本文详细解析Python连接MySQL时出现的UnicodeEncodeError及中文乱码问题。重点介绍如何在SQLOBJECT中使用use_unicode和charset参数,以及在MySQLdb中通过连接参数、sys.setdefaultencoding和MySQL配置文件my.cnf进行全链路UTF-8编码设置,确保数据读写正常。

Python连接MySQL中文乱码问题解析

UnicodeEncodeError: 'latin-1' codec can't encode characters in position;


经过排查发现,默认情况下MySQL连接的编码格式为latin-1,这会导致非ASCII字符无法正确显示。因此,必须显式指定连接时使用的编码方式。


connectionForURI(mysql://user:password@localhost:3306/eflow?use_unicode=1&charset=utf8)



SQLOBJECT连接配置示例

针对Python操作MySQL产生的中文乱码问题,以下提供几种有效的解决方法供参考。

复制代码

代码如下:


import MySQLdb


db_user = "tiger"


db_pw = "tiger"


db = MySQLdb.connect(host="localhost", user=db_user, passwd=db_pw ,db="finaltldw",charset="gb2312")


c = db.cursor()


c.execute("""select id, name from NODES""")


i=0;


for id, name in c.fetchall():


print "%2d %s" % (id, name)


i=i+1


if i==100:


break


MySQLdb全链路UTF-8编码设置方案

返回结果: 1 TOP 2 教育 3 机构 4 人 5 地区 6 单位 7 科学研究 8 实验室 9 类型 如果编码是UTF-8 转载一个解决方案: 其中的use db Python操作MySQL以及中文乱码的问题 Python操作MySQL需要安装Python-MySQL 可以从网上搜索一下,和一般的Python包一样安装 安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用,试验了一下挺好用, 不过又发现了烦人的乱麻问题,最后用了几个办法,解决了! 我用了下面几个措施,保证MySQL的输出没有乱麻: 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8) 2 MySQL数据库charset=utf-8 3 Python连接MySQL是加上参数 charset=utf8 4 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8) mysql_test.py

复制代码

代码如下:


#encoding=utf-8


import sys


import MySQLdb


  

reload(sys)


sys.setdefaultencoding('utf-8')


  

db=MySQLdb.connect(user='root',charset='utf8')


cur=db.cursor()


cur.execute('use mydb')


cur.execute('select * from mytb limit 100')


  

f=file("/home/user/work/tem.txt",'w')


  

for i in cur.fetchall():


f.write(str(i))


f.write(" ")


  

f.close()


cur.close()


上面是linux上的脚本,windows下运行正常! 注:MySQL的配置文件设置也必须配置成utf8 设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都设置默认的字符集(通常在/etc/mysql/my.cnf): [client] default-character-set = utf8 [mysqld] default-character-set = utf8

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表