PHP json_encode() 不支持中文字符的解决方案 ch_json_encode()

function ch_json_encode($data) {

function ch_urlencode($data) {

if (is_array($data) || is_object($data)) {

foreach ($data as $k => $v) {

if (is_scalar($v)) {

if (is_array($data)) {

$data[$k] = urlencode($v);

} else if (is_object($data)) {

$data->$k = urlencode($v);

}

} else if (is_array($data)) {

$data[$k] = ch_urlencode($v); //递归调用该函数

} else if (is_object($data)) {

$data->$k = ch_urlencode($v);

}

}

}

return $data;

}

$ret = ch_urlencode($data);

$ret = json_encode($ret);

return urldecode($ret);

}

时间: 2024-07-29 05:07:26

PHP json_encode() 不支持中文字符的解决方案 ch_json_encode()的相关文章

android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,修改支持中文

在android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,如下图: 如果联系人名字的第一位是英文字符(a-z || A-Z),则默认头像将显示该首字母. 如果支持中文时显示第一个汉字,那就happy了. 那就看看如何通过修改源代码来实现这一小功能吧- 我们还是先了解下联系人头像加载的流程吧- 联系人头像加载这个问题还是很有意思的,在Contacts中使用ContactPhotoManager类(严格来讲是这个类的子类)来实现头像的异步加载. 这个类还使用了LruCache

JS_正则表达式_验证中文字符

正则表达式:"^[\u4e00-\u9fa5]{0,}$" . "/^[\u4E00-\u9FA5]{1,5}$/" 的含义: 在JS里,\uXXXX 是转义字符,"XXXX"对应的是16进制Unicode编码: ^ 匹配一行的开始.例如正则表达式^123能够匹配字符串"12345"的开始,但是不能匹配"012345":[\u4e00-\u9fa5] 指匹配在这两个Unicode编码之间的字符;{0,} 重

json_encode增加options参数后支持中文

---------------------------------------------------------------------------------------------------- header('content-type:text/html;charset=utf-8'); $a = '中文'; echo json_encode($a);//5.3版本以前,无参数情况输出 "\u4e2d\u6587" echo json_encode($a, JSON_UNESC

centos中文乱码修改字符编码使用centos支持中文

如何你的centos显示中文乱码,只要修改字符编码使centos支持中文就可以了,没有这个文件可以创建它,下面是修改步骤 一.中文支持 安装中文语言包: 复制代码 代码如下: yum groupinstall chinese-support 修改字符编码配置,没有这个文件就创建它: 复制代码 代码如下: vim /etc/sysconfig/i18n 修改后内容如下: 复制代码 代码如下: LANG="zh_CN.GB18030″SUPPORTED="zh_CN.UTF-8:zh_CN

apache2.2支持URL中文字符

网站环境:OS: centos6.9 X64apache: 2.2.15 网站转移到新环境,客户反映新闻的一些图片无法正常显示.查看URL路径发现调用的图片是中文名称.网上查下,apache支持中文,需要另外的插件支持.mod_encoding.安装mod_encoding需要gcc编译器,要确保系统已经安装了该编译器. gcc编译器安装#yum install gcc 1.mod_encoding 下载mod_encoding_64.tgz文件下载2.安装mod_encoding#tar zx

笔记: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 产品经

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

让Source Insight完美支持中文注释 (转)

如何让source insight支持中文注释,解决回车删除,移动光标出现乱码的问题?下面是解决方案: -------Source Insight3 中文操作(左右键.删除和后退键)支持宏------- 感谢丁兆杰([email protected])及互联网上辛勤耕耘的朋友们!!! Evan: [email protected] ① Project→Open Project,打开Base项目,将文中代码框中的所有内容函数复制到utils.em文件的最后: ② 重启SourceInsight:

C++输出中文字符(转)

C++输出中文字符 1. cout 场景1: 在源文件中定义 const char* str = "中文" 在 VC++ 编译器上,由于Windows环境用 GBK编码,所以字符串 "中文" 被保存为 GBK内码,编译器也把 str 指向一个包含有 GBK编码的只读内存空间.用 cout 输出 str 时, 由于中文Windows环境用GBK编码,所以把GBK编码的 str 内容输出到控制台,没问题. 场景2: 在Linux 下编辑一个文件 const char*