Python2.7编码字符的问题

Python2.7编码字符的问题,python,database,encoding,Python,Database,Encoding,它适用于常规字符,但不适用于 重音字符,如é、á等。。。 节目如下: def search(): connection = sqlite3.connect('vocab.sqlite') cursor = connection.cursor() sql = "SELECT French, English value FROM Ami " cursor.execute(sql) data = cursor.fetchall() data=sort

它适用于常规字符,但不适用于 重音字符,如é、á等。。。 节目如下:

def search():
    connection = sqlite3.connect('vocab.sqlite')
    cursor = connection.cursor()
    sql = "SELECT   French, English value FROM Ami "
    cursor.execute(sql)
    data = cursor.fetchall()
    data=sorted(data)
    file_open=open('vraiamis.html','w')
    for i in data:
       a='<a href="'+'http://www.google.fr/#hl=fr&gs_nf=1&cp=4&gs_id=o&xhr=t&q='
       a=a+str(i[0]).encode('latin-1')+'">'+str(i[0]).encode('latin-1')+'</a>'+'<br>'
       file_open.write(a)

 file_open.close()
 webbrowser.open('vraiamis.html')
def search():
connection=sqlite3.connect('vocab.sqlite')
cursor=connection.cursor()
sql=“从Ami中选择法语、英语值”
cursor.execute(sql)
data=cursor.fetchall()
数据=已排序(数据)
文件_open=open('vraiamis.html','w')
对于数据中的i:
a=''+'
' 文件\u打开。写入(a) 文件_open.close() webbrowser.open('vraiamis.html')
当数据库中的值包含特殊字符,如é、á、ç(不起作用),我会收到以下错误消息: UnicodeEncodeError:“ascii”编解码器无法对位置1中的字符u'\xe9'进行编码:序号不在范围内(128)

提前感谢您的帮助

试试看

a=a+i[0].encode('latin-1')+'">' + i[0].encode('latin-1')+'</a>'+'<br>'
a=a+i[0]。编码('latin-1')+'>'+i[0]。编码('latin-1')+'++'
'

etc-您的
str()
调用正在尝试在解码之前将unicode转换为bytestring。

您可以在
utf-8
编码中编写
vraiamis.html
,以便对特殊字符进行编码

def search():
    import codecs
    connection = sqlite3.connect('vocab.sqlite')
    cursor = connection.cursor()
    sql = "SELECT   French, English value FROM Ami "
    cursor.execute(sql)
    data = cursor.fetchall()
    data=sorted(data) 
    file_open= codecs.open('vraiamis.html', 'w', encoding='utf-8')
    for i in data:
       a=u'<a href="' + u'http://www.google.fr/#hl=fr&gs_nf=1&cp=4&gs_id=o&xhr=t&q='
       a=a + i[0] + u'">' + i[0] + u'</a>' + u'<br>'
       file_open.write(a)
    file_open.close()
    webbrowser.open('vraiamis.html')
def search():
导入编解码器
connection=sqlite3.connect('vocab.sqlite')
cursor=connection.cursor()
sql=“从Ami中选择法语、英语值”
cursor.execute(sql)
data=cursor.fetchall()
数据=已排序(数据)
file_open=codecs.open('vraiamis.html','w',encoding='utf-8')
对于数据中的i:
a=u'+u'
' 文件\u打开。写入(a) 文件_open.close() webbrowser.open('vraiamis.html')
抱歉,编码不起作用,它会返回一条错误消息