我无法用pyodbc正确打印mysql中的字符

j7dteeu8  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(269)

我使用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,python3.6.1,pyodbc4.0.16,jupyter笔记本5.5.0上工作

pbwdgjma

pbwdgjma1#

您的连接字符串显示您正在使用mysql odbc驱动程序的ansi版本。如果您想使用utf-8编码的文本,您应该使用unicode版本的驱动程序。

相关问题