I’m trying to make a connection via ODBC from a Python program running on Ubuntu to a MySQL box on the same machine. (I’m using ODBC instead of DB-API because I’m going to be using different database engines and I want a consistent way of getting to the system catalog, like SQLTables.)
But when I connect to my MySQL database and run SQLTables, I get this for my first row:
(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”)
Clearly these are unicode values, but they look like they are for really high codepoints, and sure enough, I can’t encode them into ASCII. All my table names should be ASCII.
Is there some setting that I’m missing or have wrong that is causing this?
my odbc.ini is:
[ODBC Data Sources]
mu = MySQL
[mu]
Description = MySQL Database Test
Driver = MySQL
Server = localhost
Database = ccc2
Port = 3306
My odbcinst.ini is
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/odbc/libmyodbc.so
FileUsage = 1
Found it. I needed to specify Charset=UTF8 in my connection paramters, like so: