Python有一些很好的库可以将Unicode重音字符转换为最接近的Ascii字符,还有一些库可以将代码点编码为Unicode字符。
但是,有哪些选项可以检查字符串是否具有Unicode代码点或HTML转义?例如,以下字符串:
Rialta te VeniceÇ
有Ç
,转化为一个拉丁大写字母C。是否有一个python库可以检测字符串中的代码点/转义符并输出Unicode等效项?
我不清楚你要问的是什么,但这是我的最佳尝试:
>>> s = 'Rialta te VeniceÇ'
>>> import html
>>> s2 = html.unescape(s); s2
'Rialta te VeniceÇ'
就像你说过的,有一些用于规范/删除重音符号的库:
>>> import unidecode
>>> unidecode.unidecode(s2)
'Rialta te VeniceC'
你实际上不需要检查它是否具有Unicode代码点,因为此功能不会更改非重音字符。但是你仍然可以使用进行检查s2.isascii()
。
因此,完整的解决方案是使用unidecode.unidecode(html.unescape(s))
。
我的问题本质上是如何“撤消”
Ç
,我错误地认为它是代码点(如您所指出的,实际上是HTML转义)。您的答案很漂亮,可以unescape(s)
检测到HTML转义符的存在-谢谢!