Warm tip: This article is reproduced from serverfault.com, please click

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

(python - Best way to detect accent HTML escape in a string?)

发布于 2020-11-29 17:57:43

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

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

Rialta te Venice&#199

&#199,转化为一个拉丁大写字母C是否有一个python库可以检测字符串中的代码点/转义符并输出Unicode等效项?

Questioner
Elie
Viewed
11
xjcl 2020-11-30 03:37:38

我不清楚你要问的是什么,但这是我的最佳尝试:

  1. &#199HTML转义,你可以像这样进行转义

    >>> 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))