将包含(html)em-dash的字符串转换为统一的统一表单?

时间:2015-10-19 03:31:33

标签: python python-unicode

em-dash可以用两种形式写成,

  • 小数形式—
  • 十六进制形式—

当它们被翻译成html格式(在浏览器中显示)时,它们显示相同的这个( - ),一个em-dash。

现在,当em-dash再次转换为python时,它会变为\ u2014。

我的问题,给出了一串—或—,有没有办法将它们转换为\ u2014?

3 个答案:

答案 0 :(得分:1)

你需要的是一个HTML解析器

#!/bin/python
import HTMLParser
parser=HTMLParser.HTMLParser()
print(parser.unescape("—"))

结果

答案 1 :(得分:0)

试试ftfy。这是一个用于修复unicode问题的python库。

答案 2 :(得分:0)

有人回答了我的问题,当我想将其标记为答案时,帖子似乎已被删除。感谢原版海报。

以下是他发布的答案: -

>>> import HTMLParser
>>> p = HTMLParser.HTMLParser()

>>> p.unescape(u'test8212 — aaa')
u'test8212 \u2014 aaa'

>>> p.unescape(u'test8212 — aaa')
u'test8212 \u2014 aaa'