gb2312 是一个双字节字符集,使用 mb_strlen() 检查单个汉字会返回 2,但如果再多 2 个字符,有时结果很奇怪,有人知道为什么吗?我怎样才能得到合适的长度?
<?php
header('Content-type: text/html;charset=utf-8');//
$a="大";
echo mb_strlen($a,'gb2312'); // output 2
echo mb_strlen($a.$a,'gb2312'); // output 3 , it should be 4
echo mb_strlen($a.'a','gb2312'); // output 2, it should be 3
echo mb_strlen('a'.$a,'gb2312'); // output 3,
?>
谢谢 deceze,你的文档很有帮助,像我这样对编码知之甚少的人应该阅读它。每个程序员绝对肯定需要了解的编码和字符集以处理文本