首页 > 解决方案 > 如何找到波兰语 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就好了)。如何确保正确转换所有字符?

标签: pythonpython-3.xpandaspython-unicode

解决方案


推荐阅读