Python MySQL Unicode Ошибка - PullRequest
       7

Python MySQL Unicode Ошибка

0 голосов
/ 14 апреля 2011

Я пытаюсь вставить запрос, содержащий é - или \ xe9 (INSERT INTO tbl1 (text) VALUES ("fiancé")) в таблицу MySQL в Python, используя модуль _mysql.
Мой запрос в Unicode, и когда я вызываю _mysql.connect (...). Query (query), я получаю UnicodeEncodeError: 'ascii' кодек не может кодировать символ u '\ xe9' в позиции X : порядковый номер не в диапазоне (128).
Очевидно, что вызов запроса вызывает преобразование строки Unicode в ASCII, но вопрос в том, почему? Моя БД находится в utf8, и соединение открывается с флагами use_unicode = True и charset = 'utf8'. Unicode просто не поддерживается с _mysql или MySQLdb? Я что-то упустил?

Спасибо!

1 Ответ

0 голосов
/ 14 апреля 2011

Я знаю, что это не дает прямого ответа на ваш вопрос, но почему вы не используете готовые заявления? Это сделает две вещи: возможно, исправит вашу проблему и почти наверняка исправит ошибку SQLi, которую вы почти наверняка получили.

Если вы этого не сделаете, вы абсолютно уверены, что ваша строка сама по себе является Unicode? Если вы просто наивно используете строки в Python 2.7, возможно, он принудительно записывается в строку ASCII.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...