<?php
$json='[{"ZtdID":"100000","ZtdNo":"001 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"张三"},{"ZtdID":"100001","ZtdNo":"002 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"李三"}]';
var_dump(json_decode($json,true));?>
输出为NULL
经仔细查看,是编码问题,求解?
$json='[{"ZtdID":"100000","ZtdNo":"001 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"张三"},{"ZtdID":"100001","ZtdNo":"002 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"李三"}]';
var_dump(json_decode($json,true));?>
输出为NULL
经仔细查看,是编码问题,求解?
$jss = iconv('gbk','UTF-8','$json');
var_dump(json_decode($jss,true));还是null
$arr=array($str);
$tmp= json_encode($arr);$str=json_decode($tmp);
$str=iconv('UTF-8','gbk',$str[0]);
echo $str;
你的代码是哪看的 网页源代码里?那是因为你看的编码是utf-8.如果他已经是utf-8 那就直接转回gbk2312不就完了?或者你就全用utf-8编码好了...全省事了..咔咔
不是理论上 是事实上.你的文件是不是utf8格式保存的呀?
上传服务器也是null,怀具
echo base64_encode($json);
的结果
$json = iconv("gbk", "UTF-8", $json);
$sr = json_decode($json, true);
if($sr)
{
foreach($sr as $key => $value)
{
$sr[$key] = iconv("UTF-8", "gbk", $value);
}
}
echo "<pre>";
var_dump($sr);
现在他的问题是 全部都是UTF-8编码但是输出是NULL... 这孩子
$json='[{"ZtdID":"100000","ZtdNo":"001 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"张三"},{"ZtdID":"100001","ZtdNo":"002 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"李三"}]';
debug( $json );
debug( json_decode($json,true) );------------------输出正常[{"ZtdID":"100000","ZtdNo":"001 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"张三"},{"ZtdID":"100001","ZtdNo":"002 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"李三"}]Array
(
[0] => Array
(
[ZtdID] => 100000
[ZtdNo] => 001
[ZtdName] => 1号店
[Address] => XX市ZZ区YY路01号铺
[Re] =>
[AreaID] => 01
[ZtdTel] => 0000-8888888
[ZtdContact] => 张三
) [1] => Array
(
[ZtdID] => 100001
[ZtdNo] => 002
[ZtdName] => 1号店
[Address] => XX市ZZ区YY路01号铺
[Re] =>
[AreaID] => 01
[ZtdTel] => 0000-8888888
[ZtdContact] => 李三
))
我有啥好写呢?他的json不就是我的json?呵呵...
$json = iconv("gbk", "UTF-8", $json);
$sr = json_decode($json, true);
if($sr)
{
foreach($sr as $key => $value)
{
$sr[$key] = iconv("UTF-8", "gbk", $value);
}
}
echo "<pre>";
var_dump($sr);
1.不存在编码问题,因为原为已经是utf8了,所以不用转换;
2.只是我第一次在机子上就是出来null,今天再次跑时居然好了,中文出来了;
3.为了怕有的浏览器默认问题,加一句这个,出来没有问题。
<?php
header("Content-type: text/html; charset=utf-8");$json='[{"ZtdID":"100000","ZtdNo":"001 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"张三"},{"ZtdID":"100001","ZtdNo":"002 ","ZtdName":"1号店 ","Address":"XX市ZZ区YY路01号铺 ","Re":"","AreaID":"01","ZtdTel":"0000-8888888","ZtdContact":"李三"}]';
$str=var_dump(json_decode($json,true));
echo $str;
?>
array(2) { [0]=> array(8) { ["ZtdID"]=> string(6) "100000" ["ZtdNo"]=> string(4) "001 " ["ZtdName"]=> string(8) "1号店 " ["Address"]=> string(24) "XX市ZZ区YY路01号铺 " ["Re"]=> string(0) "" ["AreaID"]=> string(2) "01" ["ZtdTel"]=> string(12) "0000-8888888" ["ZtdContact"]=> string(6) "张三" } [1]=> array(8) { ["ZtdID"]=> string(6) "100001" ["ZtdNo"]=> string(4) "002 " ["ZtdName"]=> string(8) "1号店 " ["Address"]=> string(24) "XX市ZZ区YY路01号铺 " ["Re"]=> string(0) "" ["AreaID"]=> string(2) "01" ["ZtdTel"]=> string(12) "0000-8888888" ["ZtdContact"]=> string(6) "李三" } }我出来是这样的?
而你出来的那样的?
你是json...他是 var_dump...
你var_dump 出来还不都是这样嘛....
解决了就行了 果然是本地环境问题..咔咔