Python中的MySQL:UnicodeEncodeError:'ascii
你好,我正在尝试把一个字符串存储到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)
请注意,我在你的字符串中把字符 ' 进行了转义,以避免出现语法错误。