python - 如何找到波兰语 Unicode 字符的 ASCII 等价物?
问题描述
我正在使用一个数据集,该数据集混合了用 Unicode 字符拼写的波兰语单词和一些 ASCII 等效字符。例如,波兰语Łęg在某些地方写成Leg。有没有办法可以将 unicode 拼写转换为 ASCII 文本,以便我可以比较两者?我正在寻找这样的东西:
'Leg' == unicode_to_ascii('Łęg') # this comparison should return True
似乎有一种方法可以在 php中执行此操作
编辑我使用pandas 的str.normalize()取得了一些有限的成功(它只是调用了 python 的unicodedata.normalize())
df[col] = (
df[col]
.str.normalize('NFKD')
.str.encode('ASCII','ignore')
.str.decode('utf-8')
)
问题是并非所有字符都可以正确转换。例如,尝试将小写ł字符编码为 ASCII 会出现以下错误:
UnicodeEncodeError: 'ascii' codec can't encode character '\u0142' in position 2: ordinal not in range(128)
这适用于大多数其他字符(例如ę转换为e就好了)。如何确保正确转换所有字符?