课程
/后端开发
/PHP
/PHP进阶篇
为什么获取中文的时候长度加不加utf8 结果都一样,非要加吗?
2016-05-23
源自:PHP进阶篇 10-5
正在回答
最好跟页面的编码一样,比如这里header("Content-type: text/html; charset=UTF-8"),那么这里mb_strlen($str,"UTF-8"),如果是header("Content-type: text/html; charset=gb2312")这样的话,那么同理 mb_strlen($str,"gb2312"),得到的长度都是3
因为一般汉字编码默认就是UTF-8,所以你加不加都一样。但是如果汉字编码不是utf-8,你就要指定正确的计算编码,不然计算结果会出错,因为不同编码保存的汉字占用的字节不一样,楼上说了。。。
因为不同的编码下1个汉字所占的字节是不一样的。比如UTF-8编码下,1个汉字是占3个字节;而GBK是占2个字节;
<?php header("Content-type: text/html; charset=gb2312"); //获取字符串长度 $str = "我爱你"; echo mb_strlen($str,"gb2312"); echo "<br>"; echo mb_strlen($str); ?>
你可以这样去测试下。
举报
轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序
1 回答可以不加i吗,不加结果也是一样的
6 回答什么时候要加$符号,什么时候不加$符号
2 回答加括号和不加括号的匹配结果为什么会不一样
3 回答为什么添加后输出的东西和没有添加时一样的?
4 回答为什么错了,结果都一样?