为什么我从SQLTables获取unicode值?

时间:2012-05-24 19:05:43

标签: mysql odbc pyodbc

我正在尝试通过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

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