php的tips(json发送中文是出现null的问题)
2016-05-04 00:49
441 查看
php使用json传递数据的时候出现null的情况
json_encode()函数默认使用的是utf8编码,出现中文时,如果不是utf8编码的话,则会出现null的情况,则需要使用方法1:
$array = array('title'=>iconv('gb2312','utf-8','这里是中文标题'),'body'=>'abcd...'); echo json_encode($array); //编码以后的内容就成了这样: //{"title":"u8fd9u91ccu662fu4e2du6587u6807u9898","body":"abcd..."}
iconv函数不是php的默认函数,也是默认安装的模块。需要安装才能用的,你可以修改php.ini文件,将extension=php_iconv.dll前的”;”去掉,同时你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下,其作用是转换编码
$str = "这是荆天佑的博客,啦啦啦"; iconv("gbk","utf8",$str)//将字符串string 编码由utf8转变成gbk;
方法2
/* 字符串GBK转码为UTF-8,数字转换为数字。 */ function ct2($s){ if(is_numeric($s)) {//is_numeric — 检测变量是否为数字或数字字符串 return intval($s); } else { return iconv("GBK","UTF-8",$s); } } /* 批量处理gbk->utf-8 */ function icon_to_utf8($s) { if(is_array($s)) { foreach($s as $key => $val) { $s[$key] = icon_to_utf8($val);//对于数组进行递归调用 } } else { $s = ct2($s); } return $s; } echo json_encode(icon_to_utf8("厦门"));
方法3:
/************************************************************** * * 使用特定function对数组中所有元素做处理 * @param string &$array 要处理的字符串 * @param string $function 要执行的函数 * @return boolean $apply_to_keys_also 是否也应用到key上 * @access public * *************************************************************///该函数功能为把数组的各个元素进行处理 function arrayRecursive(&$array, $function, $apply_to_keys_also = false) { foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } } /************************************************************** * * 将数组转换为JSON字符串(兼容中文) * @param array $array 要转换的数组 * @return string 转换得到的json字符串 * @access public * *************************************************************/ function JSON($array) { arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); }
相关文章推荐
- PHP之验证码的实现
- php实习的tips(常用的head头)
- php的tips(生成随机函数rand与srand)
- PHP之时间处理
- php的tips(explode函数)
- php实习的tips(in_array函数)
- PHP——时间格式转换
- PHP实现获取并生成数据库字典的方法
- php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
- PHP实现的限制IP投票程序IP来源分析
- PHP Wrapper在SAE上的应用方法
- Yii2前后台分离及migrate使用(七)
- PHP正则表达式过滤html标签属性(DEMO)
- PHP 随机数 C扩展随机数
- 上传文件方法
- PHP学习笔记——二维数组的遍历
- php的tips(关联数组按某个键值排序)
- php的tips
- PHP引用&的使用
- php的tips(mysql语句union等问题)