这是一个创建于 1713 天前的主题,其中的信息可能已经有所发展或是发生改变。
<?php
header("Content-type: text/html; charset=gbk");
$a = '度和';
if(strpos($a, '群')) {
echo '存在';
}else{
echo '不存在';
}
?>
文件是 GBK 的, 判断显示存在, 这是我在写敏感词过滤时无意发现的, 这种 BUG 太严重了,
因为度的后半个字与和的前半个字切割下来就是群字, 当然存在这种 BUG 的字是数不胜数的, 这个只是我偶然才发现的其中之一,
同样测试, str_replace, preg_match(), strstr() 等一切与字符串沾边的函数都具有该 BUG,
如果你的文件是 GBK 编码, 或就算是 UTF8 编码但你处理的字符串是 GBK 是也会有该 BUG, 这种底层编码 BUG 是不是无解的
|
|
1
dickfu 2020-05-14 00:15:19 +08:00
也就是说楼主并不知道 `mb_strpos()` 这种东西的存在呗?
|
|
|
2
jiangchuankyo 2020-05-14 09:23:35 +08:00
mb_strpos() 测试同样显示判断存在
|