導航:首頁 > 編程語言 > phpjson轉義字元

phpjson轉義字元

發布時間:2025-09-12 09:14:27

1. 如何正確運用php json_encode函數進行中文轉換

在 php 中使用 json_encode() 內置函數(php > 5.2)可以使用得 php 中數據可以與其它語言很好的傳遞並且使用它。這個函數的功能是賣輪將數值轉換成json數據存儲格式,但是轉換後的中文會變成Unicode編碼。x0dx0a[php] view plainprint?x0dx0a'希亞', x0dx0a 'Age'=>20 x0dx0a ); x0dx0a x0dx0a$jsonencode = json_encode($arr); x0dx0aecho $jsonencode; x0dx0a?> x0dx0a程序運行結果如下:x0dx0a[php] view plainprint?x0dx0a{"Name":null,"Age":20} x0dx0ajson_encode 函數中中文被編碼成 null 了,Google 了一下,很簡單,為了與前端緊密結合中侍信,Json 只支持 utf-8 編碼,我認為是前端的 Javascript 也是 utf-8 的原因。x0dx0a[php] view plainprint?x0dx0aiconv('gb2312','utf-8','這里是中文標題'), x0dx0a 'body'=>'abcd...' x0dx0a ); x0dx0a x0dx0aecho json_encode($array); x0dx0a?> x0dx0a這個程序的運行結果為:x0dx0a[php] view plainprint?x0dx0a{"title":"\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898","body":"abcd..."} x0dx0a數組中所有中文在json_encode之後都不見了或者出現\u2353等。解決方法是用urlencode()函數處理以下,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字元串,最後再用urldecode()將編碼過的中文轉回來談前。x0dx0a[php] view plainprint?x0dx0a 1000) { x0dx0a die('possible deep recursion attack'); x0dx0a } x0dx0a foreach ($array as $key => $value) { x0dx0a if (is_array($value)) { x0dx0a arrayRecursive($array[$key], $function, $apply_to_keys_also); x0dx0a } else { x0dx0a $array[$key] = $function($value); x0dx0a } x0dx0a x0dx0a if ($apply_to_keys_also && is_string($key)) { x0dx0a $new_key = $function($key); x0dx0a if ($new_key != $key) { x0dx0a $array[$new_key] = $array[$key]; x0dx0a unset($array[$key]); x0dx0a } x0dx0a } x0dx0a } x0dx0a $recursive_counter--; x0dx0a} x0dx0a x0dx0a/************************************************************** x0dx0a * x0dx0a * 將數組轉換為JSON字元串(兼容中文) x0dx0a * @param array $array 要轉換的數組 x0dx0a * @return string 轉換得到的json字元串 x0dx0a * @access public x0dx0a * x0dx0a *************************************************************/ x0dx0afunction JSON($array) { x0dx0a arrayRecursive($array, 'urlencode', true); x0dx0a $json = json_encode($array); x0dx0a return urldecode($json); x0dx0a} x0dx0a x0dx0a$array = array x0dx0a ( x0dx0a 'Name'=>'希亞', x0dx0a 'Age'=>20 x0dx0a ); x0dx0ax0dx0aecho JSON($array); x0dx0a?> x0dx0a這次成功了,運行結果如下:x0dx0a[php] view plainprint?x0dx0a{"Name":"希亞","Age":"20"}

2. php怎麼json數據轉化為字元串

json數據本身就是一個字元串。

如果說轉換,只是說,php數組和json字元串之間的轉化,在這里給你介紹php操作json的兩個函數

  1. json_decode()對 JSON 格式的字元串進行編碼
    說明
    mixed json_decode ( string $json [, bool $assoc ] )
    接受一個 JSON 格式的字元串並且把它轉換為 PHP 變數

    參數
    json
    待解碼的 json string 格式的字元串。
    assoc
    當該參數為 TRUE 時,將返回 array 而非 object 。


    返回值
    Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.

  2. json_encode — 對變數進行 JSON 編碼

    Report a bug 說明
    string json_encode ( mixed $value [, int $options = 0 ] )
    返回 value 值的 JSON 形式

    Report a bug 參數

    value
    待編碼的 value ,除了resource 類型之外,可以為任何數據類型

    該函數只能接受 UTF-8 編碼的數據

3. 後端php那裡接收到前端post給的json為什麼會是轉義字元串格式

1,有可能框架對整個參數,進行了轉義,反轉義一遍即可

2,有可能開啟了PHP的自動過濾功能,在php.ini中關閉即可

magic_quotes_gpc=On改為magic_quotes_gpc=Off

4. php如何輸出中文json格式字元串

php如何輸出中文json格式字元串
如何對json格式的字元串進行轉換,php提供了兩個函數:
json_encode 對變數進行 JSON 編碼
json_decode 對 JSON 格式的字元串進行編碼

下面看個實例:
$arr = ['a', 'b', 'c'];echo json_encode($arr);

輸出為:
["a","b","c"]

但是,當我們在數組中放入中文的時候,就會出現問題:
$arr = [ '世界', '你好',
];echo json_encode($arr);

輸出的結果為:
["\u4e16\u754c","\u4f60\u597d"]

這個結果顯然不是我們想要的,但是為什麼出現這個呢?
因為當我們的值中包含中文時,php對他進行json編碼時底層會對中文進行unicode編碼,導致結果不可讀,那該怎麼解決呢?
方法一
可以利用 urlencode 和 urldecode 方法繞過這個轉碼為 unicode 的過程,先將中文欄位進行urlencode,然後json_encode,最後再用urldecode處理結果,便可以正常顯示中文。具體代碼如下:
$arr = [ '世界', '你好',
];echo urldecode(json_encode(array_map('urlencode', $arr)));

輸出結果為:
["世界","你好"]

方法二
自PHP5.4版本,官方就已經給Json新增了一個選項: JSON_UNESCAPED_UNICODE。加上這個選項後,就不會自動把中文編碼了。具體代碼如下:
$arr = [ '世界', '你好',
];echo json_encode($arr, JSON_UNESCAPED_UNICODE);
["世界","你好"]

看吧,這才是我們想要的結果 :)

5. 怎麼讓Json解析中文

json裡面的中文是Unicode編碼後的,兩個方案,php5.4版本以上的可以使用

echojson_encode("中文",JSON_UNESCAPED_UNICODE);//"中文"

代碼輸出中文

方案二,使用下面函數,對php版本沒不限制

/**
*不轉義中文字元的json編碼
*@paramarray$arr待編碼數組
*@returnstring
*/
functionjson($arr){
$str=json_encode($arr);
$search="#\u([0-9a-f]+)#ie";
$replace="iconv('UCS-2','UTF-8',pack('H4','\1'))";
returnpreg_replace($search,$replace,$str);
}
閱讀全文

與phpjson轉義字元相關的資料

熱點內容
中央文獻研究室和中央編譯局 瀏覽:967
濟南圖紙加密 瀏覽:372
雲伺服器如何擴展 瀏覽:944
ug裝配體存多個文件夾 瀏覽:936
對數運演算法則題目及解析 瀏覽:104
rar解壓軟體怎麼變成中文顯示 瀏覽:800
為什麼我蘋果手機app上沒有微信 瀏覽:361
用python寫一個三角形 瀏覽:748
足球俱樂部網站源碼 瀏覽:147
為什麼蘋果耳機連安卓沒有聲音 瀏覽:513
解壓文件一直載入不出來 瀏覽:437
蘋果伺服器能看到什麼 瀏覽:519
單片機7段數碼管顯示 瀏覽:792
python接入紅包 瀏覽:156
少女絕對命令 瀏覽:7
我的世界伺服器怎麼造房子不被挖 瀏覽:329
美國有什麼購物app好用的 瀏覽:442
庫圖片默認文件夾 瀏覽:411
微信加密能退出嗎 瀏覽:394
程序員看劇不用買會員 瀏覽:592