php函式substr_replace中文亂碼的替代解決方法

ndblog發表於2014-09-10
        $str = "中華人民共和國";
        $len = mb_strlen($str,`utf-8`);
        if($len>=6){
            $str1 = mb_substr($str,0,2,`utf-8`);
            $str2 = mb_substr($str,$len-2,2,`utf-8`);
        }
        else{
            $str1 = mb_substr($str,0,1,`utf-8`);
            $str2 = mb_substr($str,$len-1,1,`utf-8`);            
        }

        $this->assign(`str1`,$str1);
        $this->assign(`str2`,$str2);
        $this->assign(`str`,$str1.`**`.$str2);
        $this->assign(`strold`,substr_replace($str,`**`,2,2));

輸出結果為:

中華
和國
中華**和國
��**��人民共和國
 
substr_replace函式有些缺陷,中文替代會出現亂碼,使用mb_substr函式擷取函式再連線字串解決,雖然有點醜陋,但能解決問題。

作者:Tyler Ning

出處:http://www.cnblogs.com/tylerdonet/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,如有問題,可以通過以下郵箱地址williamningdong@gmail.com
 聯絡我,非常感謝。


相關文章