ajax传含有中文的json给php,如果json中的key是中文,php部分获取的结果不对
本文介绍了ajax传含有中文的json给php,如果json中的key是中文,php部分获取的结果不对的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
ajax传含有中文的json给php,如果json中的key是中文,php部分获取的结果不对,key是英文,value是中文就没问题
这是$.ajax传给php的json串
[
{
"user": {
"user1": "user1"
},
"tab": {
"表名": "表名"
},
"col": {
"列名": "列名"
},
"isdmptab": "0",
"lderrset": "stopld"
},
{
"user": {
"user1": "user1"
},
"tab": {
"表名": "表名"
},
"col": {
"列名": "列名"
},
"isdmptab": "0",
"lderrset": "stopld"
},
{
"user": {
"user1": "user1"
},
"tab": {
"表名": "表名"
},
"col": {
"列名": "列名"
},
"isdmptab": "0",
"lderrset": "stopld"
},
{
"user": {
"user1": "user1"
},
"tab": {
"表名": "表名"
},
"col": {
"列名": "列名"
},
"isdmptab": "0",
"lderrset": "stopld"
},
{
"user": {
"user2": "user2"
},
"tab": {
"表名": "表名"
},
"col": {
"列名": "列名"
},
"isdmptab": "0",
"lderrset": "stopld"
}
]
这是php部分$_POST['tabmap']的输出
中文部分 结果不对
Array
(
[0] => Array
(
[user] => Array
(
[user1] => user1
)
[tab] => Array
(
[0] => 表名
)
[col] => Array
(
[0] => 列名
)
[isdmptab] => 0
[lderrset] => stopld
)
[1] => Array
(
[user] => Array
(
[user1] => user1
)
[tab] => Array
(
[0] => 表名
)
[col] => Array
(
[0] => 列名
)
[isdmptab] => 0
[lderrset] => stopld
)
[2] => Array
(
[user] => Array
(
[user1] => user1
)
[tab] => Array
(
[0] => 表名
)
[col] => Array
(
[0] => 列名
)
[isdmptab] => 0
[lderrset] => stopld
)
[3] => Array
(
[user] => Array
(
[user1] => user1
)
[tab] => Array
(
[0] => 表名
)
[col] => Array
(
[0] => 列名
)
[isdmptab] => 0
[lderrset] => stopld
)
[4] => Array
(
[user] => Array
(
[user2] => user2
)
[tab] => Array
(
[0] => 表名
)
[col] => Array
(
[0] => 列名
)
[isdmptab] => 0
[lderrset] => stopld
)
)
文件是utf-8编码
如果key是中文就不行,如果key不是中文就不出问题
解决方案
json字符串中的中文是以\u8868形式表示,这个问题是json字符串没有正确解析,无法识别中文,于是将数据以数组形式从0索引,所以结果不正确,
建议在前端将数据组合为js数组或对象,然后调用JSON.stringify($data);将数组转化为json格式然后再将这条数据ajax到后端,用json_decode解析,结果正确
$arr1['表名'] = "表名";
echo $a = json_encode($arr1);
$b = json_decode($a,true);
print_r($b);
输出
{"\u8868\u540d":"\u8868\u540d"}
Array
(
[表名] => 表名
)
这篇关于ajax传含有中文的json给php,如果json中的key是中文,php部分获取的结果不对的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文