在php中使用 json_encode() 内置函数可以使用得php中的数据更好的与其它语言传递与使用。

这个函数的功能是将数组转换成json数据存储格式:

1 <?php
2 $arr=array('name'=>'Balla_兔子','age'=>22);
3 echo json_encode($arr);
4 ?>

输出结果:

1 {"name":"","age":22}

json_encode函数中中文被编码成null了,查了下资料,很简单,为了与前端紧密结合,json只支持utf-8编码。

我们可以用iconv函数转换下编码:

1 string iconv ( string $in_charset , string $out_charset , string $str )
2 Performs a character set conversion on the string str from in_charset to out_charset.//从in_charset编码转为out_charset,str为转换内容
1 <?php
2 $arr=array('name'=>iconv('gbk', 'utf-8', 'Balla_兔子'),'age'=>22);
3 echo json_encode($arr);
4 ?>

输出结果:

1 {"name":"Balla_\u934f\u65bf\u74d9","age":22}

在数组里所有中文在json_encode之后都不见了或者出现\u934f\u65bf\等。

解决方法是用urlencode()函数处理下,在json_encode之前,把所有数组内所有内容都用urlencode()处理,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

1  string urlencode ( string $str ) //UrlEncode:将字符串以URL编码返回 返回值:字符串
 1 <?php
2
3 $arr=array('name'=>urlencode('Balla_兔子'),'age'=>22);
4
5 $json=json_encode($arr);
6
7 $result=json_decode($json,true);//把json解码并转为数组
8
9 echo urldecode($result['name']);
10
11 ?>

输出结果:

1 Balla_兔子

PHP json_encode函数中需要注意的地方的更多相关文章

  1. PHP json_encode() 函数介绍

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. ...

  2. (转载)PHP json_encode() 函数介绍

    (转载) 在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存 ...

  3. PHP json_encode函数的参数说明

    PHP json_encode函数的参数说明 一.总结 一句话总结: · json_encode常常被用于将数组转换成json格式的字符串来表示,但是json_encode的第一个参数却并不一定是数组 ...

  4. PHP的json_encode()函数与JSON对象

    一.问题描述 这周搬砖的时候,前端通过ajax获取后端的数据后,照例用 对象.属性 的方式取值,然而结果总是总是不能如预期般展示在页面上. 先写个 demo 还原下场景:选中一个下拉框列表选项后,会在 ...

  5. ES6 箭头函数中的 this?你可能想多了(翻译)

    箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点——“=> 就是一个新的 function”. ...

  6. js函数中参数的传递

    数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...

  7. 不要在init和dealloc函数中使用accessor

    不要在init和dealloc函数中使用accessor 文章目录 Objective-C 2.0 增加了 dot syntax,用于简单地调用成员变量的 accessor.相当于 java 的 ge ...

  8. 在信号处理函数中调用longjmp

    错误情况及原因分析 前两天看APUE的时候,有个程序要自己制作一个sleep程序,结果在这个程序中就出现了在信号处理函数中调用longjmp函数的情况,结果就出现了错误,具体错误是啥呢,请参见下面这段 ...

  9. 【javascript】函数中的this详解 — 大家准备好瓜子,我要讲故事啦~~

       javascript中的this和函数息息相关,所以今天,我就给大家详细地讲述一番:javascript函数中的this   一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里我就只说最 ...

随机推荐

  1. finecms在任意页面调用栏目名称和地址等

    finecms如何调用栏目名称和地址呢?在任意页面.我们有时需要在不同的页面调用某个栏目名,怎么调用比较快呢?ytkah整理了一些快速调用语句方便查找 栏目名称:{dr_cat_value(栏目id, ...

  2. 如何修改帝国cms文章点击量默认值和成倍增加

    我们在帝国cms发布完文章,在不点击的情况下,“点击量”默认显示为0,请问有什么方法,修改关注默认值吗?这个可以在增加信息时,“特殊属性”标签里修改点击量,如下图 有朋友问有没其他好的方法快速增加.成 ...

  3. 数据库---mysql内置功能

    一.视图 简介: 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用.使用视图我们可以把查询过 ...

  4. 004-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-共享服务中心建设原则

    一般来说服务能力包括两个层次,一个是底层paas的能力,PaaS层结局大型架构在分布式.可靠性.可用性.容错.监控以及运维层面上的通用需求:第二个层次是业务能力,业务能力提供云化的核心业务支撑能力,这 ...

  5. [django]django corepython核心编程

    model meta排序 class BlogPost(models.Model): title = models.CharField(max_length=150) body = models.Te ...

  6. 强制SVN上传代码时添加日志

    因SVN不能像Git一样,审核代码之后才合入到主版本.为了使开发人员养成良好的上传习惯,强制要求上付时必须写明上传内容. 可以通过以下方法设置 1,在SVN服务器上找到源码仓库路径,找到下面文件夹:C ...

  7. [LeetCode] 709. To Lower Case_Easy

    Implement function ToLowerCase() that has a string parameter str, and returns the same string in low ...

  8. Java Selenium - 浏览器操作

    浏览器主要操作方法来自接口 org.openqa.selenium.WebDriver , 实现于org.openqa.selenium.remote.RemoteWebDriver这个类,然后不同浏 ...

  9. TensorFlow读取CSV数据(批量)

    直接上代码: # -*- coding:utf-8 -*- import tensorflow as tf def read_data(file_queue): reader = tf.TextLin ...

  10. SEO--多领域

    1.社交媒体SEO优化,例如:视频,吸引流量 2.电商SEO,很多不是皇冠的商家也可以被搜索到 3.新媒体 微博 和 微信营销 手机端的SEO等.传统的SEO已经渐渐不具备竞争力 SEO盈利:网盟.广 ...