mb_substr使用中出現的一點問題

 $str="探訪韓國坡州志願軍墓地 墓碑上刻\"無名人\"";
        var_dump(substr($str,0,48));
        var_dump(mb_substr($str,0,48));
首先使用substr和mb_substr結果出現同樣的效果!
如下輸出:
string(48) "探訪韓國坡州志願軍墓地 墓碑上刻"�"  string(48) "探訪韓國坡州志願軍墓地 墓碑上刻"�"
記憶中mb_substr是按字符個數來的,不應該和substr一樣。
看了下php版本, 5.4.16,mbstring擴展也裝了。<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
然後又改了一下:
        $str="探訪韓國坡州志願軍墓地 墓碑上刻\"無名人\"";
        var_dump(substr($str,0,48));
        var_dump(mb_substr($str,0,17,'utf-8'));
最後輸出:
string '探訪韓國坡州志願軍墓地 墓碑上刻"�' (length=48)
string '探訪韓國坡州志願軍墓地 墓碑上刻"' (length=47)
記得以前截取中文沒有用到utf-8.難道是版本變了,現在必須加上。還是自己記錯了!!
thinkphp的html頁面中使用
<volist name='alists' id='vo'>
          <li><a href="{:U('Action/showsome',array('id'=>$key))}">*{$vo|mb_substr=0,20,'utf-8'}...</a></li>
</volist>





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章