1

Ubuntu で実行されている Python プログラムから同じマシン上の MySQL ボックスに ODBC 経由で接続しようとしています。(DB-API の代わりに ODBC を使用しています。これは、異なるデータベース エンジンを使用する予定であり、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 に答える