Я пытаюсь получить список имен таблиц из базы данных MySQL. Соответствующие части кода выглядят следующим образом::
conn = pyodbc.connect('...')
cursor = conn.cursor()
for table in cursor.tables():
print table.table_name
Для каждой таблицы он печатает кучу тарабарских символов (квадратов и вопросительных знаков в ромбах ). Используя repr(table.table_name)
, он печатает:
u'\U00500041\U004c0050\U00430049\U00540041\U004f0049'
для таблицы с именем «ПРИЛОЖЕНИЕ».
Если вы рассматриваете каждый 32-битный символ как два 16-битных символа, вы получите строку «PALPCITAOI». Перестановка пар символов (1 и 2, 3 и 4 и т.д. )дает "APPLICATIO" (без буквы "N"). Предположительно, он поменял местами N и нулевой символ, в результате чего отсутствующий N (предполагает нулевые-оканчивающиеся строки).
Как правильно вывести имена таблиц?
Он работает под управлением Python 2.4, PyODBC 2.1 и MySQL 5.0.22.