json_encode

json_encode

實際套用中,當有中文字元時,當直接使用json_encode() 函式會使漢字編碼成”\u***”的形式,自從php5.4起 已經解決這個問題,使用以下方法解決漢字被編碼的問題,json_encode("中文", JSON_UNESCAPED_UNICODE)

基本介紹

  • 中文名:json_encode
  • 函式說明: 對變數進行JSON編碼
  • 函式定義:返回 value 值的JSON形式
  • value:待編碼的 value
函式說明,函式定義,value,options,返回值,實例說明,解決方法,字元轉碼方式,間接解決,

函式說明

(PHP5 >= 5.2.0, PECL json >= 1.2.0)
json_encode — 對變數進行JSON編碼;

函式定義

stringjson_encode(mixed$value , int $options = 0 ] )
返回 value 值的JSON形式

value

待編碼的 value ,除了resource 類型之外,可以為任何數據類型
該函式只能接受UTF-8 編碼的數據(譯註:指字元/字元串類型的數據)

options

由以下常量組成的二進制掩碼:JSON_HEX_QUOT,JSON_HEX_TAG,JSON_HEX_AMP,JSON_HEX_APOS,JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT,JSON_UNESCAPED_SLASHES,JSON_FORCE_OBJECT,JSON_UNESCAPED_UNICODE.

返回值

編碼成功則返回一個以 JSON 形式表示的string或者在失敗時返回FALSE

實例說明

json_encode()函式對數組進行JSON編碼。
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echojson_encode($arr);
?>
以上例程會輸出:
{"a":1,"b":2,"c":3,"d":4,"e":5}

解決方法

json_encode() 函式 使用參數:JSON_UNESCAPED_UNICODE
json_encode($arr, JSON_UNESCAPED_UNICODE);

字元轉碼方式

也可以嘗試使用這個簡短的方法:
function jsonEncodeWithCN($data) {
return preg_replace("/\\\u([0-9a-f]{4})/ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '$1'))", json_encode($data));

相關詞條

熱門詞條

聯絡我們