課程
/后端開發(fā)
/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,你就要指定正確的計算編碼,不然計算結果會出錯,因為不同編碼保存的漢字占用的字節(jié)不一樣,樓上說了。。。
因為不同的編碼下1個漢字所占的字節(jié)是不一樣的。比如UTF-8編碼下,1個漢字是占3個字節(jié);而GBK是占2個字節(jié);
<?php header("Content-type:?text/html;?charset=gb2312");? //獲取字符串長度 $str?=?"我愛你"; echo?mb_strlen($str,"gb2312"); echo?"<br>"; echo?mb_strlen($str); ?>
你可以這樣去測試下。
舉報
輕松學習PHP中級課程,進行全面了解,用PHP快速開發(fā)網(wǎng)站程序
1 回答可以不加i嗎,不加結果也是一樣的
6 回答什么時候要加$符號,什么時候不加$符號
2 回答加括號和不加括號的匹配結果為什么會不一樣
3 回答為什么添加后輸出的東西和沒有添加時一樣的?
4 回答為什么錯了,結果都一樣?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2016-10-01
最好跟頁面的編碼一樣,比如這里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
2016-05-23
因為一般漢字編碼默認就是UTF-8,所以你加不加都一樣。但是如果漢字編碼不是utf-8,你就要指定正確的計算編碼,不然計算結果會出錯,因為不同編碼保存的漢字占用的字節(jié)不一樣,樓上說了。。。
2016-05-23
因為不同的編碼下1個漢字所占的字節(jié)是不一樣的。比如UTF-8編碼下,1個漢字是占3個字節(jié);而GBK是占2個字節(jié);
你可以這樣去測試下。