指定源代码编码对我很有用。这是我下面示例代码顶部的代码。这应该在python文件的顶部定义。在#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
value = """...instalação de eletrônicos...""".decode("iso-8859-15")
print value
# prints: ...instalação de eletrônicos...
import unicodedata
value = unicodedata.normalize('NFKD', value).encode('ascii','ignore')
print value
# prints: ...instalacao de eletronicos...
现在您也可以毫无例外地执行str(value)。在
这似乎保留了所有的口音:
^{pr2}$
编辑:
请注意,对于上一个版本,即使结果看起来相同,它也不会返回equal is True。例如:#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import unicodedata
inValue = """...instalação de eletrônicos...""".decode("iso-8859-15")
normalizedValue = unicodedata.normalize('NFKC', inValue).encode('utf-8')
try:
print inValue == normalizedValue
except UnicodeWarning:
pass
# False
编辑2:
这将返回相同的:normalizedValue = unicode("""...instalação de eletrônicos...""".decode("iso-8859-15")).encode('utf-8')
print normalizedValue
print str(normalizedValue )
# prints (without exceptions/errors):
# ...instalação de eletrônicos...
# ...instalação de eletrônicos...
虽然我不确定这是否对utf-8编码的数据库有效。可能不会吧?在