编码错误\ xe9和SQLite

时间:2014-12-19 23:25:25

标签: python

我有这个脚本从我的Skype帐户打印我的用户名,全名和城市。 当城市由'é'(或'\ xe9')字符组成时,我遇到了问题。我的城市就是那个角色。 我查看了UTF-8,但它对'é','è'字符没有帮助。我需要将这些转换为正常的'e'。

con = sqlite3.connect(path + '\\' + username + '\main.db')
with con:
    cur  = con.cursor()
    datapro = cur.execute("SELECT fullname,skypename,city, FROM Accounts;")
for row in datapro:
    details = {
            '[+] User ' : str(row[0]),
            '[+] Skype Username ' : str(row[1]),
            '[+] City ' : str(row[2]) or "unknown"
    }   
for i in details:
    data += i + '\t' + ': ' + details[i] + '\n'

我收到错误:'ascii'编解码器无法编码位置5中的字符u'\ xe9':序数不在范围内(128) 对不起,如果我复制了一些东西,但我没有看到我的答案。 结果必须从'Guérande'(错误因此不起作用)变为'Guerande'(这里我认为有一种方法) 感谢

1 个答案:

答案 0 :(得分:0)

如果你真的想要删除所有非ascii char并将它们映射到ascii最接近的版本,你应该尝试unidecode包:

>>>from unidecode import unidecode
>>>unidecode("À Guérande on ramasse plutôt du sel")
'A Guerande on ramasse plutot du sel'

但为了保持口音,你应该尝试使用.encode('utf8')在Joran评论中提出的建议。