解决php函数json_encode转换后中文被编码为unicode

大家都知道使用函数json_encode()可以方便快捷地将数组进行json编码转换,但是如果数组值存在着中文,json_encode会将中文转换为unicode编码,例如:


<?PHP
$array = array(‘中国‘,‘美国‘,‘高富帅‘,‘白富美‘,‘屌丝‘);
echo json_encode($array);

打印出的结果为:


["\u4e2d\u56fd","\u7f8e\u56fd","\u9ad8\u5bcc\u5e05","\u767d\u5bcc\u7f8e","\u5c4c\u4e1d"]

这种格式也是我们最常见的,在javascript中也是可以被解析的。但有些情况下我不需要将中文转换为unicode编码,该如果处理呢。解决办法是先将中文进行
urlencode()转码。然后转为json.再通过urldecode()
将json转换就可以解决:


$data = array();
foreach($array as $key=>$value)
{
$data[] = urlencode($value);
}
echo urldecode(json_encode($data));

打印结果为:

["中国","美国","高富帅","白富美","屌丝"]

这样,我们的问题也就解决了,常见的有天气预报的接口返回值就是这样的。需要我们注意的是
json_encode()只支持UTF-8编码
。所以如果是其它编码的时候还需要转换一下。如:iconv(),当然方法也很多了,在PHP5.4的版本中
json_encode()已经支持不转换编码,例:json_encode($str, JSON_UNESCAPED_UNICODE)

时间: 2024-10-11 06:00:45

解决php函数json_encode转换后中文被编码为unicode的相关文章

PHP中json序列化后中文的编码显示问题

在接口返回数据中,我们经常会返回json或者xml格式,php的json序列化函数json_encode非常好用,但是默认会把中文编码为ASCII码(注意,很多人认为这是乱码,其实不是),尤其在调试接口时,看到一大串的ASCII码,一脸懵逼,不知是对是错: 代码: <?php class A { public $num; public $name; function __construct($_num,$_name) { $this->num=$_num; $this->name=$_n

关于json_encode()函数转换后,中文乱码或出现空白情况

json_encode()函数通常将数组转换成json和前端页面进行交互,但 有时候转换后的数据中文出现乱码或空白: 原因:是文件的编码不一致,不是utf8导致的,应该把文件全部改为utf8编码格式即可了!!

php解决json_encode输出GB2312中文问题 (数组)

在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. 如下所示: $arr = array('Name'=>'希亚', 'Age'=>20); $jsonencode = json_encode($arr); echo $jsonencode; 运行结果: {"Name":null,"Age":20} json

PHP数组传递给JavaScript以及json_encode的gbk中文乱码的解决

首先关于json_encode的gbk中文乱码,创建JSON函数,这一段来自网上某一位大侠 /************************************************************** * * 使用特定function对数组中所有元素做处理 * @param string &$array 要处理的字符串 * @param string $function 要执行的函数 * @return boolean $apply_to_keys_also 是否也应用到key

PHP 数字金额转换成中文大写金额的函数 数字转中文

/** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,所以只留两个小数位 $num = round($num, 2); //将数字转化为整数 $num = $num * 100; if (strlen($

php5.4一下 json_encode 不转义中文

转载地址:http://www.nowamagic.net/php/php_FunctionJsonEncode.php 在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. 01 <?php 02 $arr = array 03        ( 04           'Name'=>'希亚', 05           'Age'=>2

HP数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法

这两个函数比较简单,我这里直接写例子,但是有一点一定要注意,json数据只支持utf-8格式,GBK格式的数据转换为json会报错! json_encode()用法: <?php$data =array(‘name’=>’jianqingwang’,‘sex’=>’man’,‘title’=>’PHPER’,‘location’=>’XiaMen’); $new_data =json_encode($data); var_dump($data);echo “<br>

转战JS(1) 初探与变量类型、运算符、常用函数与转换

转战JS(1)初探与变量类型.运算符.常用函数与转换 做为一名.NET后台开发人员,正考滤向Web前端开发转型,之前也写过一代前端代码,可是当再回头看JS,并有转向它的意愿的时候,突然发现:原来JS不是那么简单的.很多的细节部分以前都没有注意到,现在把学习的知识点记录下来,做为学习笔记,好时不时看看.如果有什么错误,还请各位看官多多包涵.多多指正. JavaScript是一门轻量型的面向Web编程的脚本言语言,常被简称为:JS.广泛应用于PC和各种移动设备中,常和HTML.CSS一起组成网页页面

笔记:PHP查询mysql数据后中文字符乱码

新建表Clubs CREATE TABLE `Clubs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; id name 1 程序员2 架构师3 产品经