php中json encode中文編碼問題

2021-07-11 03:03:03 字數 739 閱讀 3436

現象:眾所周知使用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 現在有...