数组需要转码,原本需要这样的方式:
unserialize(iconv('gbk','utf-8',serialize($array)));
得到的结果是空白
借助var_export函数,最终函数如下:
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来执行返回(类似匿名函数?),至此完美解决问题。
转自:http://sizeed.blog.163.com/blog/static/965254512011613576930/