由于将Array转换为json的json_encode()方法仅能将utf-8字符集进行转换,不是utf-8格式的中文字符会变成null,需要对Array中的字符进行统一转码,但是iconv()方法只能转换字符串类型编码,网上找到如下方法可以统一解决string类型和Array类型的转码问题

function auto_charset($fContents, $from=‘gbk‘, $to=‘utf-8‘) {

$from = strtoupper($from) == ‘UTF8‘ ? ‘utf-8‘ : $from;

$to = strtoupper($to) == ‘UTF8‘ ? ‘utf-8‘ : $to;

if (strtoupper($from) === strtoupper($to) || empty($fContents) || (is_scalar($fContents) && !is_string($fContents))) {

return $fContents;

}

if (is_string($fContents)) {

if (function_exists(‘mb_convert_encoding‘)) {

return mb_convert_encoding($fContents, $to, $from);

} else if (function_exists(‘iconv‘)) {

return iconv($from, $to, $fContents);

} else {

return $fContents;

}

} else if (is_array($fContents)) {

foreach ($fContents as $key => $val) {

$_key = auto_charset($key, $from, $to);

$fContents[$_key] = auto_charset($val, $from, $to);

if ($key != $_key)

unset($fContents[$key]);

}

return $fContents;

}

else {

return $fContents;

}

}

原文:http://www.cnblogs.com/yxzzj/p/5871074.html

php中对数组进行转码,php实现转码的方式(支持数组类型转码)相关推荐

  1. #UML# Astah+Doxygen 将C++源码映射为类图内成员只支持基本类型不支持自定义类型

    根据上篇文章#UML# Astah+Doxygen 将C++源码映射为类图,我们可以很轻松的将源码自动映射成类图, 然而在实际过程中,会发现生成的类图中,成员变量经常会有丢失的现象. 只支持基本类型不 ...

  2. 细说PHP笔记03(第7章)--数组与数据结构,数组定义,数组遍历,数组内部指针遍历,键值操作函数,统计数组函数,回调函数处理数组元素,数组排序,拆分、合并、分解、结合数组,数组实现堆栈,随机选取元素

    1.数组 索引数组:索引值是整数 关联数组:索引值是字符串 2.数组的定义 1.以直接赋值的方式声明 $数组名[下标]=资料内容 或 $数组名[关联字符串(键值)]=资料内容 <?php $va ...

  3. 虚拟商品帐号交易平台源码_支持个人二维码收款

    精仿淘手游马上有号账号交易平台源码支持个人二维码收款,安装非常简单,支持个人二维码收款,可以运营精仿马上有号账号交易平台源码 支持个人二维码收款 安装教程: PHP版本一定要选择5.2 1.先修改配置 ...

  4. c++byte数组和文件的相互转换_5分钟系列之Java类文件结构(三、字节码指令简介)...

    字节码指令简介1字节码与数据类型2加载和存储指令3运算指令4类型转换指令5对象创建与访问指令6操作数栈管理指令7 控制转移指令8方法调用和返回指令9异常处理指令10同步指令公有设计和私有实现Class ...

  5. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  6. iOS中你可能没有完全弄清楚的(二)自己实现一个KVO源码及解析

    前几天写了一篇blog(点这里),分析了系统KVO可能的实现方式.并添加了简单代码验证. 既然系统KVO不好用,我们完全可以根据之前的思路,再造一个可以在项目中使用的KVO的轮子. 代码已经上传到gi ...

  7. python返回unicode_Python 中通过 unicode 码返回单字符的函数是 ,返回单字符 unicode 码的函数是 。_学小易找答案...

    [单选题]哪一个命令能用来查找在文件TESTFILE中只包含四个字符的行?( ) [单选题]修改以太网卡mac地址的命令为( ). [单选题]Python 字符串支持切片操作,如有字符串 s &quo ...

  8. 将一个数组中的字符串用指定字符分割开,分别放到另一个数组中

    #include "stdafx.h" #include <stdio.h> #include <string.h> #pragma warning(dis ...

  9. JavaScript实现以数组形式返回斐波那契数列fibonacci算法(附完整源码)

    JavaScript实现以数组形式返回斐波那契数列fibonacci算法(附完整源码) fibonacci.js完整源代码 fibonacci.js完整源代码 export default funct ...

  10. C语言学习之将一个二维数组的行和列互换,存到另一个二维数组中

    C语言学习之将一个二维数组的行和列互换,存到另一个二维数组中 #include <stdio.h> int main(){int a[2][3]={{1,2,3},{4,5,6}}; // ...

最新文章

  1. 正弦信号有效值 c语言,推导正弦波正弦量、平均值、有效值基本公式
  2. 历届试题 快速排序:
  3. MySQL存储引擎、MyISAM、InnoDB
  4. 企业私有云部署im,视频服务
  5. Intellij Idea的使用之svn篇
  6. 搜索引擎广告计费系统如何防恶意点击
  7. mysql使用中文报错,hibernate mysql 插入中文错误
  8. python编程思维代码_Python编程快速上手——强口令检测算法案例分析
  9. css focus 选择器用于选取获得焦点的元素
  10. nginx 超时设置_Nginx最详细的反向代理配置步骤,拿去不谢
  11. SQL Server从入门到精通(二)
  12. foobar2000的使用
  13. 如何使用phpDesigner 编写一个表格
  14. java编程语言怎么学习,详细说明
  15. 新猿木子李:0基础学python培训教程 Python操作Excel之格式转换
  16. 用VS2010打开VS2013、VS2015、VS2017等高版本项目
  17. 检测xposed框架实现
  18. 海外试玩推广渠道汇总
  19. 错误:Unfortunately you can‘t have non-Gradle Java modules and Android-Gradle modules in one project.
  20. The server quit without updating PID file 的解决

热门文章

  1. 2017java面试_2017 Java面试大全(一)
  2. linux一次性密码确保ssh登录安全,使用 SSH 时确保 EC2 Linux 实例安全的最佳实践
  3. python编写自动化脚本工具_Python自动化构建工具scons使用入门笔记
  4. Bootstrap下拉菜单相关
  5. 前端基础进阶之Promise
  6. linux下keepalived+nginx的负载均衡搭建
  7. 浅读《构建之法:现代软件工程》有感
  8. asp.net页面中Menu控件下拉菜单被frame挡住和iframe自适应高度的解决办法
  9. mysql多数据源事务_springboot项目多数据源及其事务
  10. mysql 统计本月的_MySql查询当天、本周、本月、本季度、本年的数据