MySQL в Python: UnicodeEncodeError: 'ascii' - PullRequest
       42

MySQL в Python: UnicodeEncodeError: 'ascii'

4 голосов
/ 17 февраля 2012

Здравствуйте. Я пытаюсь сохранить строковое значение в MySQL, и я использую db.escape_string (), чтобы не экранировать специальные символы.Строка:

Lala*=#&%@<>_?!:;-'"/()¥¡¿

Но когда я пытаюсь запустить код, я получаю эту ошибку:

UnicodeEncodeError: кодек «ascii» не может кодировать символы в позиции 23-25: порядковый номер не в диапазоне (128)

Что мне делать?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Попробуйте http://pypi.python.org/pypi/Unidecode/0.04.1

Например:

from unidecode import unidecode

your_string = 'Lala*=#&%@<>_?!:;-\'"/()¥¡¿'
unidecode(your_string)

Обратите внимание, что я избежал символа 'из вашей строки, чтобы избежать SyntaxError

0 голосов
/ 17 февраля 2012

Ошибка говорит о том, что здесь есть символы, которых нет в ASCII (вместо этого они являются юникодом). Попробуйте использовать:

newStr = u'Lala*=#&%@<>_?!:;-'"/()¥¡¿'

Это должно быть объявлено как Unicode, вместо этого вместо u'something.
Это вряд ли будет работать с большинством оболочек Python, поэтому убедитесь, что ваша IDE может поддерживать Unicode, и что файл, который вы используете, имеет объявление Unicode вверху.

...