1. php json 輸出中文亂碼的問題怎麼處理啊,謝謝
header("Content-Type:text/html;charset=UTF-8");
$arr=array('1','2','三');
echo$arr['2']."<br/>";
print_r($arr);
echo"<br/>";
print_r(json_encode($arr));
echo"<br/>";
print_r(json_decode(json_encode($arr)));
輸出json數據會有但是翻譯成數組後就行了
2. php json decode 中文亂碼
呵呵,如果你查看一下手冊就知道了,json_encode()這個函數只能編碼utf-8的字元,就是說你給他傳入的參數只能是utf-8格式。所以捏,你在encode之前,需要將你的漢字編碼轉化為utf-8的格式,然後再encode,這樣就不會有問題了。
3. PHP從Mysql查出來的數據轉換成json格式中文亂碼怎麼解決
需要保持 編碼一致 包括
1 創建一致 使用UTF8
CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2. 鏈接編碼一致
$mysqli->query("SET NAMES 'UTF8'");
3. html php 頁面聲明 編碼一致
header("Content-Type: text/html; charset=utf-8");
4 . 腳本文件 編碼一致
存儲腳本文件時選擇unicode UTF8
特別提示, windows 使用中文文件名和目錄名 , 默認的是GBK 要寫入非 gbk資料庫需要轉為一致的代碼
4. 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).'})';
5. php中json_decode函數 返回空 因為字元串中有中文轉碼
是中文轉碼的問題,不要這樣轉碼,urlencode格式化中文就可以了
6. php在將數組轉成json的時候,key值是中文的,亂碼怎麼解決!
亂碼的話是因為文件的格式不正確,而網頁編碼是默認為文件編碼格式的,JSON又是UTF-8編碼,所以你的文件可能是GB2312格式,所以導致JSON內的中文亂碼。
這種情況轉換為UTF-8格式就可以了。
(注意,轉換成無BOM格式的,記事本轉換的UTF-8是帶BOM的,會導致JSON無法正確解析)
7. 亂碼問題 php json 轉化為數組的時候 所有中文變亂碼
看你是直接硬編碼,試試在html中聲明 utf8 ,即:
<!DOCTYPEhtml>
<html>
<headlang="ch">
<metacharset="UTF-8">
<title></title>
</head>
<body>
......