我可以使用iconv
命令将 utf-8 字符串“转换”为纯 ASCII 字符串,并将字符替换为最接近的 ASCII 字符。但是,我的问题是我需要结果字符串包含完全相同的字符数(代码点)作为源字符串。例如,英镑 ( £
) 字符将被替换为三个字符 ( ) 或具有两个字符的GBP
字符。相反,我希望这些字符被替换为æ
ae
单身的字符(例如,L
或?
或a
或e
)。有没有方法/选项?
概述
我正在尝试为基于拉丁语的文本开发“基于 ASCII”的查找例程。例如,find 'uco' in '£Húçôz'
应该返回位置 3(我从第一个位置的 1 开始计数)而不是 5(因为£
扩展到 3 个字符而不是一个)。请注意,我正在尝试开发的东西要复杂得多;我在这里尝试尽可能简化我的问题。
另请注意,这寻找例程在匹配基于非 ASCII 拉丁语的文本字符串时不需要完美,但匹配的(第一个)位置(如果有)应该指向正确的字符(代码点)位置。