你好,我正在尝试将一个字符串值存储到MySQL中,并使用db.escape_string()函数来避免转义特殊字符。这个字符串是:
Lala*=#&%@<>_?!:;-'"/()¥¡¿
但是当我尝试运行代码时,我遇到了这个错误:
UnicodeEncodeError: 'ascii'编解码器无法对位置在23-25的字符进行编码:序数不在128的范围内
我应该怎么办?
你好,我正在尝试将一个字符串值存储到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)
在运行脚本之前,我在Debian中使用以下bash命令解决了问题:
export PYTHONIOENCODING=utf-8
newStr = u'Lala*=#&%@<>_?!:;-'"/()¥¡¿'
需要使用Unicode进行声明,使用u'某些内容'。
这在大多数Python shells中可能无法正常工作,因此请确保您的IDE支持Unicode,并且您正在使用的文件在顶部有一个Unicode声明。
STR.decode('utf-8')
将会把它转换为一个具有正确编码的 unicode
对象。 - BrigandSTR = STR.encode('utf8')
- vikki