Я пытаюсь вытащить список имен таблиц из базы данных 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'
для таблицы с именем "APPLICATION".
Если вы обрабатываете каждый 32-битный символ как два 16-битных символа, вы получаете строку "PALPCITAOI".Меняя местами пары символов (1 и 2, 3 и 4 и т. Д.), Он выдает «APPLICATIO» (без «N»).Предположительно, он поменялся местами с N и нулевым символом, что привело к отсутствию N (при условии, что строки заканчивались нулем).
Как правильно вывести имена таблиц?
Это работает под Python2.4, PyODBC 2.1 и MySQL 5.0.22.