PHP - json_encode中文乱码

调用json_encode()函数将JSON对象转换为字符串, 如果其中包含有中文,默认会输出为unicode编码,如\u8023。

解决方案1:

升级到PHP 5.4,在json_encode()函数中,第二个参数指定JSON_UNESCAPED_UNICODE即可。

解决方案2:

对于低版本PHP,对unicode码再进行解码,解码函数如下:


function decodeUnicode($str)

{

return preg_replace_callback(‘/\\\\u([0-9a-f]{4})/i‘,

create_function(

‘$matches‘,

‘return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");‘

),

$str);

}

例子如下:


$arr = array(‘name1‘:"中文",‘name2‘:‘abc12‘);

$jsonstr = decodeUnicode(json_encode($arr));

时间: 2024-11-09 05:50:04

PHP - json_encode中文乱码的相关文章

PHP json_encode中文乱码解决方法

<?php /** * [PHP json_encode中文乱码解决方法] * 这里说的"中文乱码"其实不是不是真的乱码,而是在最后的json结果中显示下面的字串: * {"name":"\u4e2d\u6587\u5b57\u7b26\u4e32″,"value":"test"} * * [解决办法] * 在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode

黄聪:PHP json_encode中文乱码解决方法

相信很多人在使用Ajax与后台php页面进行交互的时候都碰到过中文乱码的问题.JSON作为一种轻量级的数据交换格式,备受亲睐,但是用PHP作为后台交互,容易出现中文乱码的问题.JSON和js一样,对于客户端的字符都是以UTF8的形式进行处理的,也就是说,使用JSON作为提交和接收的数据格式时字符都采用UTF8编码处理,当我们的页面编码和数据库编码不是采用UTF8的时候,就极容易出现中文乱码的问题.解决办法自然是在用js或者PHP处理JSON数据的时候都采用UTF8的形式. PHP5.2或以上的版

PHP json_encode 中文乱码

在编码过程中.经常会用到json_encode来处理中文.但是.出现一个问题.中文都会被转码.变为" \u**** "的格式.如何避免被转码.1:PHP的版本为5.4以上:echo json_encode( '中文' ); // "\u4e2d\u6587"echo json_encode( '中文', JSON_UNESCAPED_UNICODE ); // "中文"2:先把汉字urlencode转码.在json_encode; 然后urlde

关于json_encode中文乱码问题的解决方式

第一种: 这种简单的做一个代码转换,urlcode之后再返回所需数组 我代码这样就足够了. public static function encodeOperations ($array) { foreach ((array)$array as $key => $value) { if (is_array($value)) { encodeOperations($array[$key]); } else { $array[$key] = urlencode(mb_convert_encoding

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

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

json_encode返回的中文乱码,解析不出

json_encode返回的中文乱码,解析不出,json_encode里面加个参数就行了 json_encode($data,JSON_UNESCAPED_UNICODE); 原文地址:https://www.cnblogs.com/yehuisir/p/12446009.html

微信自定义菜单中文乱码问题

文章转自 <微信自定义菜单中文乱码问题> 问题:微信自定义菜单开发者模式,菜单中文出现乱码 例: $menu = array( 'button' => array( array( 'type'=>'view', 'name'=>'百度', 'url'=>'https://www.baidu.com', ), ), ); 调用微信自定义菜单创建接口:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACC

php -- 解决php连接sqlserver2005中文乱码问题(附详细解决方法)

@[email protected]~~ --php5.2 --phpstudy --apache --sqlserver2005 @[email protected]~~问题描述 问题一:php连接sqlsever2005,输入中文,然后查询sqlserver中对应的数据,由于提交中文是UTF-8,而sqlserver的中文为GBK,所以字段无法匹配,没有查询结果. 问题二,php连接sqlsever2005,读取数据表数据,由于中文是UTF-8,而sqlserver的中文为GBK,读出来的中

PHP读取mssql,json数据中文乱码

PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. 解决办法: <?php header("Content-Type: text/html;charset=utf-8"); //告诉浏览器不要缓存数据 header("Cache-Control: no-cache"); require "../conn.