有很多情况下我们会遇到项目的编码是gbk(gb2312)的情况,大家都知道php的jsonencode函数只支持utf编码,转换gbk编码会把汉字转换为null 大部分使用的办法是使用iconv函数将编码转换为utf8,但是转换成utf8后在前台页面gbk编码的情况下又会乱码,所以又得把
有很多情况下我们会遇到项目的编码是gbk(gb2312)的情况,大家都知道php的jsonencode函数只支持utf编码,转换gbk编码会把汉字转换为null
大部分使用的办法是使用iconv函数将编码转换为utf8,但是转换成utf8后在前台页面gbk编码的情况下又会乱码,所以又得把json_encode数据转换会utf8;
并在在gbk与utf8互转时遇到特殊字符还会出现各种问题;还有没有其他的办法呢? 可以让json_encode直接转换gbk编码?
方法是使用urlencode 和 urldecode ,于是将json_encode函数重新封装了下,就可以支持转换gbk编码了,代码如下:
<?php
function toJson($content){
//不支持单个文字
if(is_string($content) ) {
return urlencode($content);
}
elseif(is_array($content)){
foreach ( $content as $key => $val ) {
$content[$key] = toJson($val);
}
return urldecode(json_encode($content));
}
elseif(is_object($content)) {
$vars = get_object_vars($content);
foreach($vars as $key=>$val) {
$content->$key = toJson($val);
}
return urldecode(json_encode($content));
}
else{
return urldecode(json_encode($content));
}
}
?>
原文地址:封装php json函数支持转换gbk编码的方法, 感谢原作者分享。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号