2

假设我们有一个简单的场景,一串语言,比如法语。

我们希望将法语转换为音译形式的 ASCII。

如何以最简单的方式在 C 中完成?

还有一种完全不同的方式,与 iconv 无关,理想情况下是多平台的?

4

1 回答 1

3

如果您想要多平台,iconv则不是正确的工具。音译是 GNU 特定的扩展。一般来说,音译是一个难题,而 GNUiconv实现仅适用于琐碎的情况。非 ASCII 字符如何音译不是字符的属性,而是文本语言及其使用方式的属性。例如,“日”应该变成“ri”或“ni”还是完全不同的东西?或者如果你想坚持使用拉丁语,“ö”应该变成“o”还是“oe”?扩展到其他非拉丁文字,音译大多数印度语言相当简单,但是音译泰语需要对字符进行一些重新排序,而音译藏语需要解析整个音节并识别哪些字母在根/前缀/后缀/等中。角色。

在我看来,“我如何音译为 ASCII?”的最佳答案。对于大多数软件程序是:不要。而是修复任何错误或故意以英语为中心的政策,使您首先需要 ASCII。唯一真正应该进行音译的软件是具有高度语言感知能力的软件,有助于搜索或解释非用户母语的文本。

于 2010-12-02T00:11:07.833 回答