我正在解析包含许多特殊字符(包括Unicode和HTML实体形式)的HTML文件。 尽管已经阅读了大量有关Python与Unicode的文档,但我仍然无法正确转换HTML实体。在Python中转义HTML实体和UTF-8
这里是我跑的测试:
>>> import HTMLParser
>>> p = HTMLParser.HTMLParser()
>>> s = p.unescape("")
>>> repr(s)
"u'\\x8b'"
>>> print s
‹ # !!!
>>> s
u'\x8b'
>>> print s.encode("latin1")
‹ # OK, it prints fine in latin1, but I need UTF-8 ...
>>> print s.encode("utf8")
‹ # !!!
>>> import codecs
>>> out = codecs.open("out8.txt", encoding="utf8", mode="w")
>>> out.write(s)
# Viewing the file as ANSI gives me ‹ # !!!
# Viewing the file as UTF8 gives NOTHING, as if the file were empty # !!!
什么是写作的转义字符串s到UTF8文件的正确方法是什么?
+1
您是否在Windows中的命令提示符下,偶然? –
+0
如果您的交互式会话本身在utf-8终端上运行,您将只能看到UTF-8编码打印的正确输出。它不是,因为如果它在哪里,编码为“latin1”的打印将会失败。 –
+0
为了解决有关会话编码的问题,'locale'命令的输出确认它是UTF-8。 (我在Linux下) –