你知道是否有任何 linux 程序可以从外来词列表中删除重音(在 utf8 中)?比如西班牙语、捷克语、法语。例如:
administrátoři (捷克) administratori
français (法语) francais
niñez (西班牙语) Ninez 等
我知道我可以使用 sed 手动完成,但考虑到我正在研究多种语言,这相对耗时。我认为可以做到这一点的程序可能已经存在。
你知道是否有任何 linux 程序可以从外来词列表中删除重音(在 utf8 中)?比如西班牙语、捷克语、法语。例如:
administrátoři (捷克) administratori
français (法语) francais
niñez (西班牙语) Ninez 等
我知道我可以使用 sed 手动完成,但考虑到我正在研究多种语言,这相对耗时。我认为可以做到这一点的程序可能已经存在。
您想要的称为Unicode 分解- Unicode 组合的逆过程(将基本字符与变音符号组合在一起)。有许多相关的 SO 问题使用:
您可以将其用作起点。
Python 存储库具有unicodedata.decomposition
返回分解的映射。
您的系统可能也有iconv
适当的规范化,它也可能让您到达那里!
您是否尝试过使用重新编码(在https://github.com/pinard/Recode/)?它在努力保留信息的同时消除重音,还可以生成用 C 表示的 xlat 表。
$ cat testfile
administrátoři (czech) administratori
français (french) francais
niñez (spanish) ninez etc.
$ LANG= recode -f UTF-8..texte <testfile
administrtori (czech) administratori
franc,ais (french) francais
niez (spanish) ninez etc.