Я не могу правильно напечатать символ из MySQL с pyodbc - PullRequest
0 голосов
/ 16 мая 2018

Я использую 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

1 Ответ

0 голосов
/ 17 мая 2018

Строка подключения показывает, что вы используете ANSI-версию драйвера MySQL ODBC. Если вы хотите работать с текстом в кодировке UTF-8, вам следует использовать UNICODE-версию драйвера.

...