導航:首頁 > 編程語言 > phpjson中文不轉碼

phpjson中文不轉碼

發布時間:2022-07-21 18:58:41

php中json_decode函數 返回空 因為字元串中有中文轉碼

是中文轉碼的問題,不要這樣轉碼,urlencode格式化中文就可以了

⑵ 如何讓php jsonencode 不轉義unicode

方法有兩種

1:php版本大於等於5.4,在使用json_encode的時候加入第二個參數JSON_UNESCAPED_UNICODE:如

//這樣使用中文可不會被轉義
$jsonStr=json_encode($data,JSON_UNESCAPED_UNICODE);

2:如果php版本小於5.4,可以使用這種方法,對unicode碼再進行解碼,解碼函數如下:

/**
*因php版本小於5.4
*decodeUnicode對中文編碼unicode進行反轉義為漢字
*@param$strjson字元串
*@return轉義後的json字元串
*/
functiondecodeUnicode($str)
{
returnpreg_replace_callback('/\\u([0-9a-f]{4})/i',
create_function(
'$matches',
'returnmb_convert_encoding(pack("H*",$matches[1]),"UTF-8","UCS-2BE");'
),
$str);
}

//使用方法
$jsonStr=decodeUnicode(json_encode($data));
//或者單獨封裝一個函數
function_json_encode($data=array()){
returndecodeUnicode(json_encode($data));
}

⑶ PHP中json_encode中文亂碼問題

php 中使用 json_encode() 內置函數(php > 5.2)可以使用得 php 中數據可以與其它語言很好的傳遞並且使用它。這個函數的功能是將數值轉換成json數據存儲格式
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
//結果
//{"a":1,"b":2,"c":3,"d":4,"e":5}
/*
下面看一款json_encode中文亂碼問題
解決方法是用urlencode()函數處理以下,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字元串,最後再用urldecode()將編碼過的中文轉回來
*/
function arrayrecursive(&$array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter > 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayrecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 將數組轉換為json字元串(兼容中文)
* @param array $array 要轉換的數組
* @return string 轉換得到的json字元串
* @access public
*
*************************************************************/
function json($array) {
arrayrecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}
$array = array
(
'name'=>'希亞',
'age'=>20
);
echo json($array);
//應用實例
$servname="localhost";
$sqlservname="root";
$sqlservpws="123456";
$sqlname="lock1";
$db=mysql教程_connect($servname,$sqlservname,$sqlservpws) or die("資料庫教程連接失敗");
mysql_select_db($sqlname,$db);
$sql = "select * from t_operater";
$result =mysql_query($sql);
$rows = mysql_num_rows($result);
while($obj = mysql_fetch_object($result))
{
$arr[] = $obj;
}
echo '({"total":"'.$rows.'","results":'.json_encode($arr).'})';

⑷ 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);
["世界","你好"]

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

⑸ php怎麼將數組轉換為json而不會使中文出現亂碼

如果頁面都是utf-8編碼,一般不會出現亂碼,如果不是utf-8,先轉為utf-8。
如果想要轉換的json中的中文可讀的話,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字元串,最後再用urldecode()將編碼過的中文轉回來。

⑹ php的json_encode如何讓中文不要編碼保持原始值

json_encode只支持UTF8編碼的字元,保證在使用JSON處理的時候字元是以UTF8編碼的。具體我們可以把資料庫編碼和頁面編碼都改為UTF8。當然喜歡用gbk編碼的話,可以在進行JSON處理前,把字元轉為UTF8形式。濟南諾洋網路為您解答,希望可以幫到您。

⑺ php中json_encode中文不進行unicode編碼

有兩種方法可以借鑒以下:

1. 先把中文欄位 urlencode,json_encode 後,再用 urldecode,如下:

$data=array('result'=>1,'data'=>'示例');
echourldecode(json_encode(urlencode($data)));

2.PHP5.4以上:

json_encode 函數已經新增了一個選項:JSON_UNESCAPED_UNICODE。

加上這個選項後,就不會自動把中文編碼了。

$data=array('result'=>1,'data'=>'示例');
echojson_encode($data,JSON_UNESCAPED_UNICODE);

⑻ php在將數組轉成json的時候,key值是中文的,亂碼怎麼解決!

亂碼的話是因為文件的格式不正確,而網頁編碼是默認為文件編碼格式的,JSON又是UTF-8編碼,所以你的文件可能是GB2312格式,所以導致JSON內的中文亂碼。
這種情況轉換為UTF-8格式就可以了。
(注意,轉換成無BOM格式的,記事本轉換的UTF-8是帶BOM的,會導致JSON無法正確解析)

⑼ php json_encode在轉碼時部分中文轉換失敗。

  1. 代碼是沒有問題的,建議你看看自己的代碼文件的編碼格式是否是UTF-8的格式

  2. 如何徹底排查,重新創建文件,不要創建文本文件然後修改後綴,建議你用編輯器創建,並且設置好你的編碼格式,然後再打字,不要復制,復制之前的代碼,有可能還會存在問題。

  3. 我的推測:你的PHP文件這個代碼源文件存在編碼問題,建議重新新建一個,手打,勿復制。

  4. 建議使用好一點的IDE編輯器寫代碼,容易規避這些小問題

閱讀全文

與phpjson中文不轉碼相關的資料

熱點內容
堵車如何緩解壓力 瀏覽:15
喜鵲快貸app怎麼了 瀏覽:263
海龜編輯器積木編程怎麼安裝 瀏覽:185
程序員理發店生意怎麼樣 瀏覽:603
程序員羅技 瀏覽:180
軟考初級程序員課程2021下載 瀏覽:491
杭州程序員奶奶 瀏覽:880
不聽命令造成錯誤 瀏覽:981
kool系統源碼 瀏覽:610
流氓app在哪裡看 瀏覽:98
域名購買了怎麼指向伺服器 瀏覽:121
安卓手機如何讓照片顏色反轉 瀏覽:859
怎麼下載卓睿安手機版 瀏覽:514
h3crange命令 瀏覽:468
php前景和python 瀏覽:338
php壓縮圖片內存大小 瀏覽:495
在哪裡可以查看雲伺服器的信息 瀏覽:70
python讀取非txt文件 瀏覽:799
艾莫迅用什麼編程軟體好 瀏覽:227
android文件存儲讀取 瀏覽:214