因为汉字是双字节编码,所以在PHP中无法直接处理,不过我们可以通过下面方法把字符串转化成双字节数组,然后进行遍历:

function mb_str_split( $string ) {
    // /u表示把字符串当作utf-8处理,并把字符串开始和结束之前所有的字符串分割成数组
    return preg_split('/(?<!^)(?!$)/u', $string ); 
}


$str = "中文测试";
for($i=0;$i<strlen($str);$i++) {
   $k = $str[$i]; //输出乱码
}

foreach (mb_str_split($str) as $c)
{
    echo $c; //正常输出:中 文 测 试
}
已赞 2 0 评论