为了账号安全,请及时绑定邮箱和手机立即绑定

为什么获取中文的时候长度加不加utf8 结果都一样,非要加吗?

为什么获取中文的时候长度加不加utf8 结果都一样,非要加吗?

正在回答

3 回答

最好跟页面的编码一样,比如这里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

0 回复 有任何疑惑可以回复我~

因为一般汉字编码默认就是UTF-8,所以你加不加都一样。但是如果汉字编码不是utf-8,你就要指定正确的计算编码,不然计算结果会出错,因为不同编码保存的汉字占用的字节不一样,楼上说了。。。

0 回复 有任何疑惑可以回复我~

因为不同的编码下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);
?>

你可以这样去测试下。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么获取中文的时候长度加不加utf8 结果都一样,非要加吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信