php和json_encode中文解决方法json_encode中文解决方法json是一个很好的数据结构现在已经广泛用在网络数据传输上php 自身待了两个和json相关的函数json_encode 和json_decode
这两个函数的具体用法网上有很多相关的文章
本文主要介绍用json_encode时中文无法转换的解决方案本文假设文件所用的编码为gb2312
先写出所需的数组
<?php
$j son = array (
0 =>array (
) ,
1 =>array (
)
)
?>
如果直接用函数json_encode
<?phpecho json_encode($json) ;
?>
结果为
<?php
[ {"i d":"13", "name":nul l} , {"i d":"13", "name":nu l l} ]?>
可以看到汉字没有被转义 都为null
这是因为json仅仅转义encoding编码
故上面语句应该先转换编码
<?phpforeach ($ajax as $key=>$val)
{
$ajax[$key] ['name' ] =urlencode($val['name' ] ) ;
}echo json_encode($json) ;
?>
客户端js代码
<script type="text/javascript">function getsort(obj)
{
$.ajax(
{typ e : "GET",url : "<?=$this->baseUrl?>/index/getajax",data :,success : function(json)
{var json=eval(json) ;var html = '<select>' ;
$. each(json, function(k)
{html = '<option value="'json[k] [' id' ] ' ">' decodeURI(json[k] ['name' ] )
' </option>' ;
}) ;html ="</select>";
$('#sort' ) .html(html) ;
}
}
)
}
</script>
用上面的代码js会报错说编码不符合标准
原因是因为js中decodeURI仅仅支持utf8转码所以php
代码应该为下面的代码
<?phpforeach ($ajax as $key=>$val)
{
$ajax[$key] ['name' ] =urlencode(iconv('gb2312' , 'utf-8' ,$val['name' ] )) ;}echo json_encode($json) ;
?>
前几天还在和做外贸业务的网友聊着有哪些欧洲机房的云服务器、VPS商家值得选择的。其中介绍他选择的还是我们熟悉的Vultr VPS服务商,拥有比较多达到17个数据中心,这不今天在登录VULTR商家的时候看到消息又新增一个新的机房。这算是第18个数据中心,也是欧洲VPS主机,地区是瑞典斯德哥尔摩。如果我们有需要欧洲机房的朋友现在就可以看到开通的机房中有可以选择瑞典机房。目前欧洲已经有五个机房可以选择,...
数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。官方网站:https://www.shuhost.com* 更大带宽可在选购时选择同样享受优惠。* 目前仅提供HKBGP、阿里云产品,香港...
HaBangNet支持支付宝和微信支付,只是价格偏贵,之前国内用户并不多。这次HaBangNet推出三个特价套餐,其中美国机房和德国机房价格也还可以,但是香港机房虽然是双向CN2 GIA线路,但是还是贵的惊人,需要美国和德国机房的可以参考下。HaBangNet是一家成立于2014年的香港IDC商家,中文译名:哈邦网络公司,主营中国香港、新加坡、澳大利亚、荷兰、美国、德国机房的虚拟主机、vps、专用...