python html 转义编码,在Python中转义HTML实体和UTF-8

我正在解析包含许多特殊字符(包括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下) –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值