我使用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上工作
1条答案
按热度按时间pbwdgjma1#
您的连接字符串显示您正在使用mysql odbc驱动程序的ansi版本。如果您想使用utf-8编码的文本,您应该使用unicode版本的驱动程序。