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

converting a string which contains (html)em-dash to a unified unified form?

一个em-dash可以写成2种形式,

当它们被翻译成 html 格式(在浏览器中显示)时,它们会显示相同的这个 (—),一个破折号。

现在,当 em-dash 再次被翻译成 python 时,它会更改为 \u2014。

我的问题是给定一个字符串 —或 —, 有没有办法将它们都转换为 \u2014?

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

你需要的是一个html解析器

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

结果

有人回答了我的问题,当我想把它标记为答案时,post好像被删除了。感谢原poster.

这是他 post编辑的答案:-

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

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

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