理論:
????????PHP內(nèi)置的字符串長(zhǎng)度函數(shù)strlen()無(wú)法正確處理中文字符串,它得到的只是字符串所占的字節(jié)數(shù)凫岖。對(duì)于GB2312的中文編碼娶视,strlen得到的值是漢字個(gè)數(shù)的2倍叮喳,而對(duì)于UTF-8編碼的中文库车,就是3倍的差異了(在UTF-8編碼下巨柒,一個(gè)漢字占3個(gè)字節(jié))。
解決:
? ? ? ? 用mb_strlen這個(gè)函數(shù)來(lái)計(jì)算:
????????$name="鳴人";
????????print"姓名的長(zhǎng)度為:".mb_strlen($name,"utf-8");
?php
??echomb_substr("php中文字符encode",0,4,"utf-8");
?>
總體:$companyName=mb_strlen($company['dep_name'])>16?mb_substr($company['dep_name'],0,17,'utf-8').'...':$company['dep_name'];