json encode中文編碼設定

2021-09-19 07:43:20 字數 915 閱讀 9817

當使用php自帶的json_encode對資料進行編碼時,中文都會變成unicode,導致不可讀。如:對字串」廈門「進行json_encode後,輸出的是"\u53a6\u95e8"。

查詢了一下,有兩種方法:

1.將"\u53a6\u95e8"還原成「廈門」,使用如下的**:

$str= preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('ucs-2', 'utf-8', pack('h4', '\\1'))", $str);
2.先將中文字段urlencode,json_encode後,再用urldecode,也可以顯示中文。

$code = urldecode(json_encode(urlencode("廈門")));
php5.4版本,已經給json新增了乙個選項: json_unescaped_unicode。加上這個選項後,就不會自動把中文編碼了。

echo json_encode("廈門", json_unescaped_unicode);
另,由於 json_encode 和 json_decode只支援utf-8編碼的字元,gbk的字元要用json就得轉換一下,附自己寫的gbk轉utf-8的**:

/*

字串gbk轉碼為utf-8,數字轉換為數字。

*/function ct2($s) else

}

/*

批量處理gbk->utf-8

*/

function icon_to_utf8($s) 

} else

return $s;

}echo json_encode(icon_to_utf8("廈門"));

json encode中文編碼設定

當使用php自帶的json encode對資料進行編碼時,中文都會變成unicode,導致不可讀。如 對字串 廈門 進行json encode後,輸出的是 u53a6 u95e8 查詢了一下,有兩種方法 1.將 u53a6 u95e8 還原成 廈門 使用如下的 str preg replace u ...

php中json encode中文編碼問題

現象 眾所周知使用json encode可以方便快捷地將物件進行json編碼,但是如果物件的屬性中存在著中文,問題也就隨之而來了。json encode會將中文轉換為unicode編碼,例如 胥 經過json encode處理後變為 u80e5 最終的json中中文部分被替換為unicode編碼。我...

PHP中json encode中文編碼的問題

php的json擴充套件自帶的json encode函式,如果對含有中文的字元進行編碼時,會自動轉換成unicode編碼。a array city 北京 abcd天津 echo json encode a n debian test server home php php test1.php 現在有...