我有以下代码:
$text = 'Tomáš'
echo strpos($text, "č");
# result if 4
我相信它们是不同的字符,为什么PHP告诉我它们是相同的?发生了什么,我该如何纠正?
用于保存源代码文件的编码方式无法对要保存的字符进行编码。不管PHP看到的是什么字符,它都不会比较你认为的字符串。将源代码保存为可以编码所有字符的编码,最好是UTF-8。
您应该尝试使用mb_strpos
函数。
根据字符数执行多字节安全的strpos()操作。第一个字符的位置为0,第二个字符的位置为1,依此类推。
对于常规设置,它返回false。
然而,如果你在使用这些特殊字符时遇到麻烦,使用mb_strpos
代替strpos
应该会有所帮助。