PHP比较字符串与重音和没有重音

kit*_*sei 0 php string utf-8

是否有可能在PHP中比较thoses字符串:

Æther == AEther == Aether
Run Code Online (Sandbox Code Playgroud)

我希望从这种等价中得到积极的结果

我实际上尝试了很多事情,但没有取得真正的成功:

  • 使用strtr将Æ和任何特殊字符替换为Ae(性能不佳,我宁愿保持字符串不变)

  • 使用strcmp/strcasecmp,这解决了上限问题,但我仍然遇到所有UTF-8字符的问题

我想要实现的是解析从json检索到的元素列表并与其他一些json文件匹配,有些可以拼写不同(utf8或非utf8,大写等),所以,现在,唯一的方法我发现这样做是为了制作第三个这样的json:

        {
        "match": {
            "name": "Unravel the \u00c6ther"
        },
        "replace": {
            "name": "Unravel the aether"
        }
Run Code Online (Sandbox Code Playgroud)

我用corect替换了基本字符串,但我想找到一种自动化过程的方法.

Mar*_*rek 11

您可以使用iconv的音译功能:

iconv('utf8', 'ASCII//TRANSLIT', 'Æther') == 'Aether';
Run Code Online (Sandbox Code Playgroud)

某些Windows系统可能需要使用'utf-8'而不是'utf8'.