php array轉化為utf-8編碼以便於轉化為json數據


php中轉化為json時,字符串或數組編碼必須為utf-8編碼。

在網上找到了一個方法可以比較簡單的轉化,在此記錄:

利用var_export()和eval()方法
var_export():輸出或返回一個變量的字符串表示,和var_dump類似,

但是它返回的是合法的php代碼格式。將第二個參數設置為true時,

它將返回變量的表示。就是,第二個參數為true時,有返回值,不打印。為false時,和var_dump類似的輸出。

eval():把字符串按照php代碼來計算,該字符串必須是合法的php代碼,且必須以分號結尾。

如果沒有在代碼字符串中調用return語句,則返回null;如果代碼解析錯誤,返回false。

function array_iconv($arr, $in_charset = "gbk", $out_charset = "utf-8") {
    $ret = eval('return ' . iconv($in_charset, $out_charset, var_export($arr, true)) . ';');
    return $ret;
}

這樣輸出的數組就被轉化為了utf-8的編碼,即使是中文,也可以轉化為json了。

下面就可以使用json_encode將中文原樣輸出了:

JSON_UNESCAPED_UNICODE參數將中文原樣輸出,不轉化為Unicode編碼
json_encode($ret,JSON_UNESCAPED_UNICODE);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM