Python中的MySQL:UnicodeEncodeError:'ascii'

问题描述 投票:4回答:3

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

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

但是当我尝试运行代码时,出现此错误:

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

我该怎么办?

python mysql unicode ascii mysql-python
3个回答
0
投票

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

例如:

from unidecode import unidecode

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

请注意,为了避免语法错误,我从您的字符串中转义了字符'


0
投票

我在运行脚本之前在bash中使用bash解决了Debian中的问题:

export PYTHONIOENCODING=utf-8

-2
投票

错误说这里有些字符不是ASCII码(而是Unicode)。尝试使用:

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

它需要声明为Unicode,而不是u'something'。在大多数python shell中,这不太可能起作用,因此请确保IDE可以支持unicode,并且所使用的文件的顶部具有unicode声明。

© www.soinside.com 2019 - 2024. All rights reserved.