我使用pyodbc连接MySQL,并成功将一些中文数据放入MySQL,但无法打印出正确的字符
In[1]: import pyodbc
cn = pyodbc.connect("DRIVER={MySQL ODBC 8.0 ANSI Driver}; SERVER=localhost; PORT=3306;DATABASE=db; UID=root; PASSWORD=******;OPTION=3;CHARSET=UTF8;")
cn.setencoding(encoding='utf-8')
cursor = cn.cursor()
In[2]: cursor.execute("insert into tc_lite values(2018, 05 ,06 ,0 ,0 ,'中文','測試',127, 110)")
cursor.execute("select * from tc_lite;")
cursor.fetchall()
out[2]: [(2018, 5, 6, 0, 0, '銝剜?', '皜祈岫', 127.0, 110.0)]
<小时/>
但是当我使用pymysql连接时,它可以显示正确的字符
In[3]: conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='******',db="trydb", charset='utf8')
cursor = conn.cursor()
In[4]: cursor.execute("select * from tc_lite;")
cursor.fetchall()
out[4]: ((2018, 5, 6, 0, 0, '中文', '測試', 127.0, 110.0),)
如果我想使用 pyodbc,我该如何修复它以显示像 pymysql 的输出
我使用win7、python 3.6.1、pyodbc 4.0.16、Jupyter Notebook 5.5.0
最佳答案
您的连接字符串表明您正在使用 ANSI 版本的 MySQL ODBC 驱动程序。如果您想使用 UTF-8 编码文本,您应该使用 UNICODE 版本的驱动程序。
关于python - 我无法使用 pyodbc 从 MySQL 正确打印字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366333/