stripos在使用特殊字符时返回false。

7
我将使用stripos函数来检查一个字符串是否在另一个字符串中出现,忽略大小写。
以下是问题:
stripos("ø", "Ø")

返回 false。虽然

stripos("Ø", "Ø")

返回 true。

正如您所看到的,该函数在这种情况下似乎不会进行大小写不敏感的搜索。

该函数在处理像Ææ和Åå这样的丹麦字符时存在相同的问题。

4个回答

9

请使用mb_stripos()代替。它支持字符集并可处理多字节字符集。stripos()是旧时代的遗留物,当时只有ASCII,所有字符只有1个字节。


为什么这个函数没有被标记为stripos的相关函数呢?如果有的话,我就可以自己找到了。感谢您的帮助。 - foens
1
你可以向PHP文档维护者提出建议。这些文档页面并非永久冻结的。 - Marc B

3

尽管我很想接受你和Marc B的答案,但我选择了他的,因为他的答案附带了解释。 - foens

1

正如其他解决方案所说,首先尝试使用mb_stripos()函数。但如果使用此函数无法帮助您,请检查您的php文件的编码。将其转换为UTF-8并保存。在经过数小时的研究后,这对我有用。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接