对数组内容使用了json_encode返回汉字内容返回了空值

如果使用json_encode对数组进行转成JSON字符串时候,发现汉字的全部为空,这样可以说明的一点是你的页面上用的一定不是UTF8编码,在PHP手册中对json_encode中待编码的值已经说明所有字符串的编码必须是UTF-8;

所以如果你的页面不是UTF-8编码的话,就需要将你的数组内容转码,具体怎么转码?下面例如你的页面是使用GBK编码的:

function Gbk2Utf8($data){
	if(is_array($data)){
		foreach($data as $key => $value){
			$data[$key]=call_user_func(__FUNCTION__,$value);
		}
		return $data;
	}
	return iconv("gbk","utf-8",$data);
}
时间: 2024-10-31 07:44:35

对数组内容使用了json_encode返回汉字内容返回了空值的相关文章

PHP json_encode 处理汉字为空 服务端JSON汉字编码

PHP   json_encode 处理汉字为空  服务端JSON汉字编码 原因是这个汉字是gbk编码 , json只能处理utf-8的编码 ,所以要先将数据转码 用Extjs接收PHP服务端返回的Json结果时,发现只要是汉字(从SQLServer取得)都是空字符,很是纳闷.后来看 json_encode的文档才知道,它只能编码UTF-8的字符.这个问题就是返回的字符是GB2312,怎么变为UTF-8,并且最好是将整个数组进 行UTF-8的转换.经过搜索有以下代码完成: //处理数组编码格式

求给定的两个数组的公共元素,并将其返回为一个数组

如数组a:1,3,4,5,6,7,2 数组b:3,6,0,2 则方法返回数组c:{2,3,6} package test3; import java.util.Arrays; public class findCommonData { public static int[] getCommon(int []array1, int []array2){ int[] array3; int i=0,j=0,k=0; Arrays.sort(array1);//排序 Arrays.sort(array

ZeroMQ接口函数之 :zmq_msg_data - 返回消息内容的指针

ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_data zmq_msg_data(3)  ØMQ Manual - ØMQ/3.2.5 Name zmq_msg_data - 返回消息内容的指针 Synopsis void *zmq_msg_data (zmq_msg_t *msg); Description zmq_msg_data() 函数会返回msg参数指定的消息内容的指针. 永远不要直接对zmq_msg_t对象进行直接操作,而是要使用zmq

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>

php 查找数组中是否存在某项,并返回指定的字符串,可用于检查复选,单选等

/** * 查找数组中是否存在某项,并返回指定的字符串,可用于检查复选,单选等 * @param $id * @param $ids * @param string $returnstr * @return string */ function check_in($id,$ids,$returnstr = 'checked') { if(in_array($id,$ids)) return $returnstr; }

SQL标量值函数:返回汉字拼音首拼

今天遇到一个需求,客户要求在系统客户端选择客户的时候,可以用拼音首拼去快速过滤选择,此时我们在客户表里面加多一个拼音首拼字段CustPY来记录,字段加好了,我们要把所有客户名称的拼音简拼都更新到CustPY字段中. 为此利用以下函数做了个批量更新 执行语句:UPDATE  客户表 SET  CustPY=dbo.[Fn_GetPinYin](客户名称字段) 这样就可以了.需要注意的是:多音字.例如 SELECT dbo.[Fn_GetPinYin]('重庆') 返回ZQ    谨此记录. --

PHP Smarty 返回页面内容方法

使用$smarty->display()时是没有办法将页面以字符串的形式返回的. 查看smarty源码发现display其实是调用的$smarty->fetch(),发现一个$diaplay参数,true时打印页面,false时返回字符串.直接贴源码(...为省略的逻辑代码) public function fetch($template = null, $cache_id = null, $compile_id = null, $parent = null, $display = false

php将某一模板内容解析过后,并获取其返回值

在PHP中,将一个模板文件(.php)文件定义过后,如果要将参数传入,并且将该文件解析过后的内容作为返回值,可以php操作缓冲区来获取该模板文件的结果 //打开缓冲区 ob_start(); //引入所需要的模板文件 include('file_name.tpl.php');          //获取缓冲区中的内容,并且将该内容赋值给一个变量 $return_info = ob_get_contents(); //清空(擦除)缓冲区并关闭输出缓冲                     ob_

JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面

将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com.west.webcourse.servlet.JavaBeanToJOSNString.java */ public class PersonInfoPo { private String name; private int age; private String sex; publ