python中的iso-8859-1和utf8

时间:2013-04-22 12:09:02

标签: python encoding utf-8 iso-8859-1

我有2个两个字符串,我想将它们进行比较。

  1. "Hỗ trợ ngôn ngữ"我认为这是iso-8859-1编码
  2. u'H\u1ed7 tr\u1ee3 ng\xf4n ng\u1eef' unicode。
  3. 2个字符串具有相同的内容。我想比较一下。 如何将第一个字符串转换为使用第二个字符串的相同编码。?

1 个答案:

答案 0 :(得分:6)

您拥有HTML实体,只需使用HTMLParser模块即可解决这些问题:

>>> import HTMLParser
>>> h = HTMLParser.HTMLParser()
>>> h.unescape("Hỗ trợ ngôn ngữ")
u'H\u1ed7 tr\u1ee3 ng\xf4n ng\u1eef'
>>> print h.unescape("Hỗ trợ ngôn ngữ")
Hỗ trợ ngôn ngữ

这些HTML实体使用十进制数字,而不是十六进制数字。 7895是十六进制的1ed7等。它们编码unicode代码点,不使用UTF-8或ISO-8859-1。 ISO-8859-1或Latin-1甚至不能编码这些特定的代码点(根据谷歌翻译,越南语为“语言支持”)。