Python中的MySQL:UnicodeEncodeError:'ascii'

时间:2012-02-17 14:31:57

标签: python mysql unicode ascii mysql-python

您好我正在尝试将字符串值存储到MySQL,并且我使用db.escape_string()以便不转义特殊字符。 字符串是

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

但是当我尝试运行代码时,我收到了这个错误:

  

UnicodeEncodeError:'ascii'编解码器无法对字符进行编码   23-25:序数不在范围内(128)

我该怎么办?

3 个答案:

答案 0 :(得分:0)

尝试http://pypi.python.org/pypi/Unidecode/0.04.1

例如:

from unidecode import unidecode

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

请注意我已从字符串中转义字符'以避免SyntaxError

答案 1 :(得分:0)

在运行脚本之前,我已在bash中使用以下命令解决了Debian中的问题:

export PYTHONIOENCODING=utf-8

答案 2 :(得分:-2)

错误说这里有一些字符在ASCII中不存在(它们是unicode) 尝试使用:

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

它需要被声明为Unicode,而不是你的东西 这不太适用于大多数python shell,因此请确保您的IDE可以支持unicode,并且您使用的文件在顶部有一个unicode声明。