JSON

专注php编程技术web网站开发运维

字号+ 作者:H5之家 来源:H5之家 2017-05-28 12:06 我要评论( )

在ajax时我们经常会用到json格式的数据,而在使用json_encode对数组进行转换时,如果数组中存在中文,而中文又是GBK编码的,该中文输出为nu

在ajax时我们经常会用到json格式的数据,而在使用json_encode对数组进行转换时,如果数组中存在中文,而中文又是GBK编码的,该中文输出为null。 
示例代码: $brand = array('id'=>'123456','name'=>'追太阳'); var_dump(json_encode($brand));

输出结果:

string(27) "{"id":"123456","name":null}" 我们需要使用编码转换函数转换成utf8格式,你可以自己写一个转换函数,也可以使用逐日者提供的一个转换函数:
/** * 对数据进行编码转换 * @param array/string $data 数组 * @param string $input 需要转换的编码 * @param string $output 转换后的编码 */ function array_iconv($data, $input = 'gbk', $output = 'utf-8') { if (!is_array($data)) { return iconv($input, $output, $data); } else { foreach ($data as $key=>$val) { if(is_array($val)) { $data[$key] = array_iconv($val, $input, $output); } else { $data[$key] = iconv($input, $output, $val); } } return $data; } } $brand = array('id'=>'123456','name'=>'追太阳'); var_dump(array_iconv(gbk2utf8($brand)));

在json_encode之前做一下array_iconv转码,此时输出正确结果。

string(37) "{"id":"123456","name":"/u8054/u60f3/u62343"}"

/u8054/u60f3/u6234 为“追太阳”的unicode码,然后在浏览器会自动转换成文字。

 

 

本文属追太阳原创文章,转载请声明出处:追太阳

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Jackson学习1之对象与JSON互相转化

    Jackson学习1之对象与JSON互相转化

    2017-05-28 13:02

  • Android 学习笔记之Volley(七)实现Json数据加载和解析...

    Android 学习笔记之Volley(七)实现Json数据加载和解析...

    2017-05-28 11:01

  • PHP. 03 .ajax传输XML、 ajax传输json、封装

    PHP. 03 .ajax传输XML、 ajax传输json、封装

    2017-05-27 17:03

  • JS使用JSON作为参数实例分析

    JS使用JSON作为参数实例分析

    2017-05-27 13:01

网友点评
_