【发布时间】:2013-07-13 00:32:42
【问题描述】:
我正在尝试从维基百科的 API 中获取一个页面,并使用 Python 将该页面打印到一个文件中。
json_data = json.loads(issue_request(params_html))
document = json_data['parse']['text']['*'].encode('utf-8')
a = open('test.html', 'wb')
a.write(document)
我发出的请求是发给http://pt.wikipedia.org/w/api.php?action=parse&prop=text&page=Dia_dos_Namorados&format=json
问题是,当我在浏览器中打开“test.html”时,所有重音字符都呈现不正确,所以我看到类似:Dia de São Valentim。
我尝试了各种不同的编码方案,包括编码为“latin-1”或使用编解码器,但到目前为止都没有奏效。有趣的是,如果我在文本编辑器(崇高)中打开文件,重音字符显示正常。只是在浏览器中它们看起来很有趣。
【问题讨论】:
-
您的文本编辑器可能默认为 UTF-8。 (如果您使用的是 Mac 或最新的 Linux 发行版,那是您的系统默认设置,所以 大多数 应用程序可能会使用它。)这并没有告诉您哪些程序没有默认设置将显示为 UTF-8。
-
将编码更改为“utf-16”似乎可以解决它。谢谢大家,我现在对根本问题有了更好的理解。
-
您并没有真正修复任何东西,您只是选择了浏览器能够猜到的编码。 (这可能意味着您的浏览器是 Internet Explorer,对吧?)
标签: python html character-encoding non-ascii-characters