1. 程式人生 > >php 解決 escape 編碼後 js 解碼中午輸出亂碼的問題

php 解決 escape 編碼後 js 解碼中午輸出亂碼的問題

我們通過 php  進行 escape  編碼 加密我們的文字後  通過js 的unescape 進行解碼,然而 中文出現亂碼,主要是因為 現在網路上所在流傳的 PHP escape  編碼方法存在 一些問題 ,下面的方法是我個人修改後的 ,提供參考

function phpescape($str){//這個是加密用的
    preg_match_all("/[\xc2-\xdf][\x80-\xbf]+|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}|[\x01-\x7f]+/e",$str,$newstr);
    $ar = $newstr[0];
    foreach($ar as $k=>$v){
        if(ord($ar[$k])>=127){
            $tmpString=bin2hex(iconv("utf-8","ucs-2",$v));
            if (!eregi("WIN",PHP_OS)){
                $tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
            }
            $reString.="%u".$tmpString;
        } else {
            $reString.= rawurlencode($v);
        }
    }
    return $reString;
}