我正在使用Python中的Mechanize从网站上获取一些数据并发送它们的新数据。
问题是该网站是法语的,因此我得到的是钻石形状的问号(�),而不是各种字符,例如éÉÀàùÙîû等。
我尝试在Google和StackOverflow上查找并找到了各种回答,但没有解决我的问题。我看到有人建议尝试以下行之一:
然后我使用机械化工具将其发送到网站:
我尝试了多种方法来编码这些字符,但我觉得我的做法不正确。我很乐意尝试答案/评论中提出的任何建议。
至于这个网站,它在头部没有指定使用哪种编码方式。
问题是该网站是法语的,因此我得到的是钻石形状的问号(�),而不是各种字符,例如éÉÀàùÙîû等。
我尝试在Google和StackOverflow上查找并找到了各种回答,但没有解决我的问题。我看到有人建议尝试以下行之一:
myString = éÀî
myString.encode('latin-1')
myString.encode('iso-8859-1')
unicode(myString, 'iso-8859-1')
但是这些方法似乎都不起作用。
我需要解决的两种情况是读取带有重音符号的csv文件以及包含重音符号的硬编码字符串。例如,这是csv文件中一行的样子(实际上';'是分隔符):
Adam Guérin;myemail@mail.com;555-5555;2011-02-05
“é”看起来没问题,但是当我尝试用机械化工具填写textField并提交时,在实际网站上,“é”现在看起来像“�”。
编辑:
这是我的代码,用于读取csv文件中的数据:
subscriberReader = csv.reader(open(path, 'rb'), delimiter=';')
subscribers = []
for row in subscriberReader:
subscribers.append(Subscriber(row[0], row[1], row[2]))
然后我使用机械化工具将其发送到网站:
self.br.select_form('aspnetForm')
self.br.form['fldEmail'] = subscriber.email
self.br.form['fldName'] = subscriber.name
self.br.form['fldPhoneNum'] = subscriber.phoneNum
self.br.submit()
我尝试了多种方法来编码这些字符,但我觉得我的做法不正确。我很乐意尝试答案/评论中提出的任何建议。
至于这个网站,它在头部没有指定使用哪种编码方式。