这个问题的答案与系统所采用的字符编码方式有关:
1. utf-8
如果系统采用的是utf-8,那么strlen("汉字")=6,即一个汉字占用3个字节。linux系统默认情况下采用的该种编码方式。
2. gb2312
如果系统采用的是gb2312,则strlen("汉字")=4,即一个汉字占用2个字节。windows中文版采用的该种编码方式。
<?php
//测试时文件的编码方式要是UTF8
$str='中文a字1符';
echo strlen($str).'<br>';//14
echo mb_strlen($str,'utf8').'<br>';//6
echo mb_strlen($str,'gbk').'<br>';//8
echo mb_strlen($str,'gb2312').'<br>';//10
?>
原文地址:http://blog.csdn.net/gogor/article/details/4470775