你好,我试图将字符串值存储到MySQL,并且我使用db.escape_string()以便不转义特殊字符。字符串是
Lala*=#&%@<>_?!:;-'"/()¥¡¿
但是当我尝试运行代码时,出现此错误:
UnicodeEncodeError:'ascii'编解码器无法对位置中的字符进行编码23-25:序数不在范围内(128)
我该怎么办?
尝试http://pypi.python.org/pypi/Unidecode/0.04.1
例如:
from unidecode import unidecode
your_string = 'Lala*=#&%@<>_?!:;-\'"/()¥¡¿'
unidecode(your_string)
请注意,为了避免语法错误,我从您的字符串中转义了字符'
我在运行脚本之前在bash中使用bash解决了Debian中的问题:
export PYTHONIOENCODING=utf-8
错误说这里有些字符不是ASCII码(而是Unicode)。尝试使用:
newStr = u'Lala*=#&%@<>_?!:;-'"/()¥¡¿'
它需要声明为Unicode,而不是u'something'。在大多数python shell中,这不太可能起作用,因此请确保IDE可以支持unicode,并且所使用的文件的顶部具有unicode声明。