php的json擴充套件自帶的json_encode函式,如果對含有中文的字元進行編碼時,會自動轉換成unicode編碼。
<?php
$a = array('city' => "北京\"'\abcd天津");
echo json_encode($a) . "\n";
?>
debian-test-server:/home/php# php test1.php
現在有這樣乙個需求,資料庫中某個字段可以儲存多個值,這樣需要將資料用json編碼以後儲存在資料庫中,用php內建的json_encode函式處理以後中文變成了unicode碼(比如),雖然網頁上面能正確處理,但是從手機同步過來的資料是漢字(比如),而不是unicode,為了從兩個地方傳遞過來的資料在資料庫中以相同的編碼儲存,現在暫時考慮將unicode碼轉換為漢字或是自定義乙個json_encode函式,此函式不會將中文轉換為unicode碼。
在 php的官方**
上面找到乙個函式,可以解決上述所說的需求,也就是將資料轉換json,而且中文不會被轉換為unicode碼。
/*** 由於php的json擴充套件自帶的函式json_encode會將漢字轉換成unicode碼
* 所以我們在這裡用自定義的json_encode,這個函式不會將漢字轉換為unicode碼
*/function customjsonencode($a = false)
if (is_string($a)) else
}$islist = true;
for ($i = 0, reset($a); $i < count($a); $i++, next($a))
}$result = array();
if ($islist) else ';}}
$a = array('a' => array('c' => '中\\"\'國', 'd' => '南韓'), 'b' => '日本');
echo customjsonencode($a) . l;
$b = array(array('c' => '中\\"\'國', 'd' => '南韓'), '日本');
echo customjsonencode($b) . l;
output:
,"b":"日本"}
[,"日本"]
php中自帶函式 json encode
php場景中,需要將陣列轉為json字串,就需要用到php自帶的json encode函式 但是當陣列中含有中文字串時,轉出來的結果卻是以下結果 1 tmparr array 4 name 長褲 5 color blue 6 size xl 7 title 中年 長褲 8 910 tmpjson j...
php中json encode中文編碼問題
現象 眾所周知使用json encode可以方便快捷地將物件進行json編碼,但是如果物件的屬性中存在著中文,問題也就隨之而來了。json encode會將中文轉換為unicode編碼,例如 胥 經過json encode處理後變為 u80e5 最終的json中中文部分被替換為unicode編碼。我...
PHP中json encode的使用心得
假設有這麼乙個url url 你好 data url url echo json encode data 得到這樣的輸出 首先發現中文經過encode之後變成了16進製制,這不是亂碼,只是單純現實方法變了,因為只需要直接通過反序列化就能得到原結果,如下 jsonstr data json decod...