根据我说西班牙语的消息来源,如果我在包含这两个值的字符串列表中搜索模式“pan”:
$normalString = "abcpan123";
$specialString = "abcpañ123";
它应该匹配它们——例如strpos("pan", $normalString)
并且strpos("pan", $specialString)
都应该返回'3'。
但是,只有第一个返回非假值。
如果我在 mySQL 中对 "like "%pan%" 进行类似的搜索,它会匹配两个字符串。
据推测,这种情况不仅适用于 n-波浪号,还适用于用重音等修饰的其他字符。
我对如何处理这个问题感到困惑......这似乎是其他人必须遇到并解决的问题,但我还没有找到一个好的现有解决方案。我希望在 PHP 中有一些不同的功能,或者某种配置,但没有乐趣。
当然,我可以使用正则表达式而不是使用 strpos() 编写一些自定义代码,但我什至不确定如何在多种外语中确定哪些字符被认为是等效的。
对我有什么帮助吗?