如何使用PyICU将Unicode文本转写为ASCII?

3 投票
2 回答
2050 浏览
提问于 2025-04-17 13:20

有一个叫做 PyICU 的库,我了解到它可以用来把字符串进行音译。不过这个库没有文档。有没有人能给个简单的例子,展示如何用 PyICU 把一个unicode字符串转换成ASCII?

C++ 的 ICU 文档中有关于音译的说明 在这里,但我不太明白怎么从Python中调用它。

2 个回答

-1

根据你提供的第一个链接,我假设你已经完成了以下两件事:

  1. 你已经构建了PyICU这个库。
  2. 你确保这个库是可以被访问的。

如果你还没有做到这两点,可以查看你链接页面上的文档。

我从你提供的链接中找到了这样的文档:

要将一个用非utf-8编码的Python字符串转换为ICU的UnicodeString,可以使用UnicodeString(str, encodingName)这个构造函数。

所以你需要找出encodingName,我猜你的可能是ASCII(你最好确认一下是否正确,我没有去验证)。

然后我想你可以这样做:

>>> from icu import UnicodeString
 . 
 .
 . 
>>> string = UnicodeString(strToConvert, ASCII)

这只是一个简单的想法,具体情况可能会有所不同。你可能想去查看一下网站,因为那里有更多的例子,以及如何以“Python方式”或“ICU方式”来做事情。

祝好运!

5

这里有一个关于PyICU的很不错的速查表,可以在这里找到:https://gist.github.com/dpk/8325992

下面是一个稍微修改过的例子:

>>> import icu
>>> tl = icu.Transliterator.createInstance('Any-Latin; Latin-ASCII')
>>> tl.transliterate('Ψάπφω')
'Psappho'

撰写回答