我需要将多个Unicode字符串“压平”以进行索引和搜索。例如,我需要将 GötheФ€
转换为ASCII码。最后两个字符在ASCII中没有相近的表示,所以完全舍弃它们是可以的。因此,我希望得到以下结果:
echo iconv("UTF-8", "ASCII//TRANSLIT//IGNORE", "GötheФ€");
输出的是Gothe?EUR
,而不是Gothe
。
除了字母外,我还希望所有类型的Unicode数字和标点符号,例如句号、逗号、破折号、斜杠等,都能被它们最接近的ASCII字符替换,这是iconv
函数中的ASCII//TRANSLIT//IGNORE
已经实现的,但对于无法找到任何ASCII替代字符的Unicode字符,会产生一些垃圾输出。我希望这样的字符被完全忽略掉。
如何获得预期结果?是否有更好的方法,可能使用intl
库?
002F
、0338
、2044
、2215
),我希望它们全部变成002F
。 - Desmond Hume