我正在尝试通过ODBC从在Ubuntu上运行的Python程序连接到同一台机器上的MySQL盒子。 (我使用的是ODBC而不是DB-API,因为我将使用不同的数据库引擎,我想要一致的方式来获取系统目录,比如SQLTables。)
但是当我连接到MySQL数据库并运行SQLTables时,我的第一行就是这个:
(U '\ U0067007a \ U005f0061 \ U00690062 \ U006c006c \ U006e0069 \ U005f0067 \ U00750061 \ U006f0074 \ U0061006d \ U00690074 \ U006e006f \ U0063005f \ U00630063', 你',你'\ U00750061 \ U00680074 \ U0067005f \ U006f0072 \ U00700075', 你'\ U00410054 \ U004c0042',你')
显然这些是unicode值,但它们看起来像是非常高的代码点,当然,我不能将它们编码为ASCII。我的所有表名都应该是ASCII。
是否有一些我缺失的设置或导致此错误的设置?
我的odbc.ini是:
[ODBC Data Sources]
mu = MySQL
[mu]
Description = MySQL Database Test
Driver = MySQL
Server = localhost
Database = ccc2
Port = 3306
我的odbcinst.ini是
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/odbc/libmyodbc.so
FileUsage = 1
答案 0 :(得分:0)
找到它。我需要在连接参数中指定Charset = UTF8,如下所示:
[ODBC Data Sources]
mu = MySQL
[mu]
Description = MySQL Database Test
Driver = MySQL
Server = localhost
Database = ccc2
Port = 3306
Charset = UTF8