Этот пост совпадает с моим вопросом в MySQL в Python: UnicodeEncodeError: 'ascii' это просто чтобы прояснить ситуацию.
Я пытаюсь сохранить строку в базе данных MySQL, но получаю ошибку:
Файл ".smart.py", строка 51, в
(число, текст, «умный», «у»)
UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xc2 в позиции
25: порядковый номер не в диапазоне (128)
и строка сохраняется в m ['Text']
Ляля * = # &% @ <> _:;?! - ' "/ () ¥ ¡¿
Вот фрагмент кода
risk = m['Text']
msg = risk.encode('utf8')
text = db.escape_string(msg)
sql = "INSERT INTO posts(nmbr, \
msg, tel, sts) \
VALUES ('%s', '%s', '%s', '%s')" % \
(number, text, 'smart', 'u')
Если я попытаюсь закомментировать SQL-запрос и поставить напечатать текст , он выведет Lala * = # &% @ <> _?!:; - '"/ () ¥ ¡¿
Ошибка встречается только при обработке SQL.
Кодировка MySQL установлена в utf8_unicode_ci. (или я должен изменить это?)
Спасибо.