1

我正在尝试通过 ODBC 从在 Ubuntu 上运行的 Python 程序连接到同一台机器上的 MySQL 机器。(我使用的是 ODBC 而不是 DB-API,因为我将使用不同的数据库引擎,并且我想要一种一致的方式来访问系统目录,例如 SQLTables。)

但是当我连接到我的 MySQL 数据库并运行 SQLTables 时,我的第一行得到了这个:

(U '\ U0067007a \ U005f0061 \ U00690062 \ U006c006c \ U006e0069 \ U005f0067 \ U00750061 \ U006f0074 \ U0061006d \ U00690074 \ U006e006f \ U0063005f \ U00630063',U',U '\ U00750061 \ U00680074 \ U0067005f \ U006f0072 \ U00700075',U '\U00410054\U004c0042', u'')

显然,这些是 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
4

1 回答 1

0

找到了。我需要在连接参数中指定 Charset=UTF8,如下所示:

[ODBC Data Sources]
mu      = MySQL

[mu]
Description = MySQL Database Test
Driver = MySQL
Server = localhost
Database = ccc2
Port = 3306
Charset = UTF8
于 2012-05-24T20:56:38.390 回答