Ascii编解码器在保存到python文件时无法解码HTML

Ascii编解码器在保存到python文件时无法解码HTML,python,encoding,Python,Encoding,我有一个文本是html的一部分。我想把它保存到一个文件中 这在Eclipse的调试模式下运行良好,但在shell的运行时失败。我正在使用一个失败的html的简短示例 xx = '<input type="hidden" name="charset_test" value="€,´,€,´,水,Д,Є" />' with codecs.open('myfile.htm'), 'wb', encoding="utf-8") as output: output.write(data

我有一个文本是html的一部分。我想把它保存到一个文件中

这在Eclipse的调试模式下运行良好,但在shell的运行时失败。我正在使用一个失败的html的简短示例

xx = '<input type="hidden" name="charset_test" value="€,´,€,´,水,Д,Є" />'
with codecs.open('myfile.htm'), 'wb', encoding="utf-8") as output:
    output.write(data)
其中XXX是“奇怪”符号在相关文件中的位置,如欧元符号

为什么它是从Eclipse而不是从shell工作的?我如何解决这个问题

我试过了

HTMLParser.HTMLParser().unescape()
unquote()
unicode()

什么都没用…

下面的代码对我很有用

# coding=utf-8

import codecs

data = '<input type="hidden" name="charset_test" value="€,´,€,´,水,Д,Є" />'
with codecs.open('myfile.htm', 'wb', encoding="utf-8") as output:
    output.write(data.decode('utf-8'))

xx
是代码中的一个实际变量,还是您作为示例给出的文件的一个片段?它只是一个片段,我使用XXX位置放大了它,因为原始文件是一个非常大的文件,您还没有解决问题吗?您试图处理的文件,其编码是什么?它不是文件,而是对远程文件的url调用的结果。它位于连接头中。例如,如果您有Firefox和Firebug,您可以在Net选项卡中看到它。在这里,您可以发送get请求,其中定义了
charset
的标题是
Content-Type
,该页面的标题是
Content-Type text/html;字符集=utf-8
# coding=utf-8

import codecs

data = '<input type="hidden" name="charset_test" value="€,´,€,´,水,Д,Є" />'
with codecs.open('myfile.htm', 'wb', encoding="utf-8") as output:
    output.write(data.decode('utf-8'))
# coding=utf-8

data = '<input type="hidden" name="charset_test" value="€,´,€,´,水,Д,Є" />'
with open('myfile.htm', 'wb') as output:
    output.write(data)