Python 编码错误\xe9和SQLite

Python 编码错误\xe9和SQLite,python,Python,我有这个脚本来打印我的用户名,全名和城市从我的skype帐户。 当城市由“é”(或“\xe9”)字符组成时,我遇到了一个问题。而我的城市正与这个角色在一起我环顾UTF-8,但这对“è”、“è”字符没有帮助。我需要将这些转换为正常的“e”。 con = sqlite3.connect(path + '\\' + username + '\main.db') with con: cur = con.cursor() datapro = cur.execute("SELECT ful

我有这个脚本来打印我的用户名,全名和城市从我的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”(我认为这里有一种方法)
谢谢

如果您真的想删除所有非ascii字符并将其映射到最接近ascii的版本,您应该尝试使用
unidecode
软件包:

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

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

其中Guérande是城市。尝试
[+]city:行[2]。如果行[2]其他“未知”
现在我得到了一个错误:UnicodeDecodeError:'ascii'编解码器无法解码第266位的字节0xc3:序号不在范围内(128)在我给你的脚本中,我应该把unidecode放在哪里?你应该把它放在任何可能包含特殊字符的字符串周围,而不是
“[+]City”:str(第[2]行)或“unknown”
你应该放
“[+]City”:unidecode(第[2]行)或“unknown”