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