php为什么会显示一个中文字符占3个呢,请大神指教

代码是这样的

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<?php
$t='</br>';
$str='我心情很好';
echo strlen($str);
echo mb_strlen($str,'GBK');//后面跟上按那种编码测长
?>
</body>
</html>

我在浏览器看了下输出的是15和8,用什么浏览器都是,我又把中文字换成一个,结果输出的是3和2,搞不懂了有些,请大家指教哈

utf-8是3,gbk/gb2312是2
http://www.cnblogs.com/showker/archive/2011/07/15/2106994.html

15和8是什么鬼?我记得gbk应该是2,utf-8是3

php的

 mb_strlen

 strlen

是不一样的,具体可以看下这个http://developer.51cto.com/art/201105/263103.htm