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