Python-检测字符串中重音HTML转义的最佳方法



Python有一些很好的库可以将Unicode重音字符转换为最接近的Ascii字符,也有一些库可以将代码点编码为Unicode字符。

但是,有哪些选项可以检查字符串是否具有unicode代码点或HTML转义?例如,这个字符串:

Rialta te Venice&#199

&#199,它翻译成拉丁大写字母C。有没有python库可以检测字符串中的代码点/转义并输出Unicode等效代码?

我不太清楚你在问什么,但这是我最好的尝试:

  1. &#199是一个HTML转义,您可以像这样取消转义:

    >>> s = 'Rialta te Venice&#199'
    >>> import html
    >>> s2 = html.unescape(s); s2
    'Rialta te VeniceÇ'
    
  2. 正如您所说,有一些库用于规范化/删除重音:

    >>> import unidecode
    >>> unidecode.unidecode(s2)
    'Rialta te VeniceC'
    

    您不需要检查它是否有Unicode代码点,因为此函数不会更改非重音字符。但是您可以使用s2.isascii()进行检查。

所以完整的解决方案是使用unidecode.unidecode(html.unescape(s))

相关内容

  • 没有找到相关文章

最新更新