Python中的MySQL:UnicodeEncodeError:'ascii

3 投票
3 回答
3453 浏览
提问于 2025-04-17 13:10

你好,我正在尝试把一个字符串存储到MySQL数据库中,我使用了db.escape_string()来避免特殊字符的问题。这个字符串是:

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

但是当我运行代码时,出现了这个错误:

UnicodeEncodeError: 'ascii' 编码无法在位置 23-25 编码字符:超出范围(128)

我该怎么办?

3 个回答

-2

这个错误提示说这里有一些字符不在ASCII范围内(它们是unicode字符)。
你可以试试用:

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

需要用Unicode来声明,格式是u'something'。
不过,这在大多数Python环境中可能不太好用,所以要确保你的开发环境(IDE)支持unicode,并且你使用的文件顶部有unicode的声明。

0

我在我的Debian系统上解决了这个问题,方法是在运行脚本之前在bash中输入以下内容:

export PYTHONIOENCODING=utf-8
0

可以试试这个链接:http://pypi.python.org/pypi/Unidecode/0.04.1

举个例子:

from unidecode import unidecode

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

请注意,我在你的字符串中把字符 ' 进行了转义,以避免出现语法错误。

撰写回答