現象:眾所周知使用json_encode可以方便快捷地將物件進行json編碼,但是如果物件的屬性中存在著中文,問題也就隨之而來了。json_encode會將中文轉換為unicode編碼,例如:』胥』經過json_encode處理後變為』\u80e5』,最終的json中中文部分被替換為unicode編碼。我們要解決的就是將物件轉換為json並保證物件內部的中文在json中仍然是以正常的中文出現,現在看來只使用json_encode是不能達到目的的。
我的解決方法:先將類中的中文字段進行url編碼(urlencode),然後再對物件進行json編碼(jsonencode),最後url解碼(urldecode)json,即最終的json,裡面的中文依舊是那個中文!
測試**如下:
<?php
2class
myclass
14 }
1516
$c = new myclass();
17echo json_encode($c);
18echo'';
19echo
$c->to_json();
20echo'';
21echo json_encode($c);
22echo'';
23echo json_encode('胥');
24?>
程式輸出結果:
"\u80e5"
**: 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的使用心得
假設有這麼乙個url url 你好 data url url echo json encode data 得到這樣的輸出 首先發現中文經過encode之後變成了16進製制,這不是亂碼,只是單純現實方法變了,因為只需要直接通過反序列化就能得到原結果,如下 jsonstr data json decod...
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 現在有...