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) ;
?>
bgpto怎么样?bgp.to日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!bgpto主打日本(东京、大阪...
香港服务器多少钱一个月?香港服务器租用配置价格一个月多少,现在很多中小型企业在建站时都会租用香港服务器,租用香港服务器可以使网站访问更流畅、稳定性更好,安全性会更高等等。香港服务器的租用和其他地区的服务器租用配置元素都是一样的,那么为什么香港服务器那么受欢迎呢,香港云服务器最便宜价格多少钱一个月呢?阿里云轻量应用服务器最便宜的是1核1G峰值带宽30Mbps,24元/月,288元/年。不过我们一般选...
需要提前声明的是有网友反馈到,PacificRack 商家是不支持DD安装Windows系统的,他有安装后导致服务器被封的问题。确实有一些服务商是不允许的,我们尽可能的在服务商选择可以直接安装Windows系统套餐,毕竟DD安装的Win系统在使用上实际上也不够体验好。在前面有提到夏季促销的"PacificRack夏季促销PR-M系列和多IP站群VPS主机 年付低至19美元"有提到年付12美元的洛杉...