程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> mb_substr

mb_substr

編輯:關於PHP編程



問題
mb_substr
解決方法
$string = "中華人民共和國";

$mystring=mb_substr($string,0,6,'UTF-8');

echo $mystring;


復制代碼在書上看到:UTF-8編碼下面,一個中文漢字占用3個字節;GB2312/GBK編碼下面一個漢字占用2個字節

那上面代碼是不是就應該輸出“中華”二字呢?


參考答案
輸出“中環人民共和”
參考答案
那個6是字符數,不是字節數.
請仔細看手冊-.-
參考答案
'UTF-8' 把這個去掉看看...
參考答案
原帖由 於安 於 2008-11-7 13:28 發表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=698924&ptid=89149]鏈接標記[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
'UTF-8' 把這個去掉看看...
不傳入encoding參數的話,
我記得是默認使用ini下的 mbstring.internal_encoding
如果mbstring.internal_encoding未設置,應該就是用Latin-1(iso-8859-1)
參考答案
原帖由 於安 於 2008-11-7 13:28 發表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=698924&ptid=89149]鏈接標記[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
'UTF-8' 把這個去掉看看...
這樣的話是一個中文字占用兩個字節
如:echo $mystring=mb_substr($string,0,4);//結果:中華
echo $mystring=mb_substr($string,0,3 or 5);//結果:中華
參考答案
原帖由 於安 於 2008-11-7 13:28 發表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=698924&ptid=89149]鏈接標記[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
'UTF-8' 把這個去掉看看...
對不起,我的錯,我頁面是GB2312的- -

頁面改成UTF8後,把'UTF-8'去掉就是一個漢字三個字節。謝謝大家的幫忙
參考答案
原帖由 男人 於 2008-11-7 16:31 發表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=699902&ptid=89149]鏈接標記[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
對不起,我的錯,我頁面是GB2312的- -
頁面改成UTF8後,把'UTF-8'去掉就是一個漢字三個字節。謝謝大家的幫忙
一個字符集可以向下包含字節數的字符,
例如gbk可以包含雙字節字符和單字節字符.
utf8可以包含6,5,4,3,2,1(舊的是4,3,2,1)字節的字符.
因為不能確定一個字串中包含多字節還是單字節字符.

GBK環境: $string = "測ab試cd字0串";

$mystring=mb_substr($string,0,3,'GBK');

echo $mystring;


復制代碼這個3返回的是字符數,設定的是字符數而且不是字節數.

唉~,說什麼好呢,看你發了這麼多關於多字節字符編碼的帖,
到頭來,還是沒明白字符和字節還有字符編碼的關系-.-

[ ]
參考答案
崩潰 -。 -
參考答案
謝謝, 豁然開朗……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved