下面我来给各位分享一个php中数组编码转换例子,这里用到了iconv函数,但对于数组我们要加以eval操作才行,下面看例子。
场景说明/问题描述:
Ajax提交页面编码为gb2312,数据库编码为utf8,在不更改页面及数据库编码的情况下插入数据。
自定义函数:
代码如下 | 复制代码 |
function array_iconv($in_charset,$out_charset,$arr){ return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';')); } |
函数说明:
var_export设置第二个参数为true,返回数组原型字符串,将字符串转换为utf-8编码,之后再用eval来执行返回。
范例:
代码如下 | 复制代码 |
$postdata = $_POST; $data = array_iconv('gb2312','utf-8',$postdata) print_r($data); |
借助Firefox firebug组件我们可以看到:
再看下数据库:
可以看到编码已经正常且入库成功