PHP的json encode處理中文

2021-07-25 09:10:45 字數 859 閱讀 6719

用php的json_encode來處理中文的時候, 中文都會被編碼, 變成不可讀的, 類似」\u***」的格式,如果想漢字不進行轉碼,這裡提供三種方法

1.公升級php,在php5.4, 這個問題終於得以解決, json新增了乙個選項: json_unescaped_unicode, 故名思議, 就是說, json不要編碼unicode.

<?php

echo json_encode("中文", json_unescaped_unicode);

//"中文"

2.把漢字先urlencode然後再使用json_encode,json_encode之後再次使用urldecode來解碼,這樣編碼出來的json陣列中的漢字就不會出現unicode編碼了。

$array = array(

'test'=>urlencode("我是測試")

);$array = json_encode($array);

echo urldecode($array);

//

3.對unicode碼再進行解碼,解碼函式如下:

function decodeunicode($str)

)/i',

create_function(

'$matches',

'return mb_convert_encoding(pack("h*", $matches[1]), "utf-8", "ucs-2be");'

),$str);

}4.例子

$arr = array('name1':"中文",'name2':'abc12');

$jsonstr = decodeunicode(json_encode($arr));

php 解決json encode中文問題

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

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中文被轉碼的問題

在php5.2中做json encode的時候。中文會被unicode編碼,php5.3加入了options引數,5.4以後才加入json unescaped unicode,這個引數,不需要做escape和unicode處理。所以在5.4之前都需要對中文做個處理 5.4裡面的處理 php json...