我们在日常写作代码的时代经常要用到gbk转utf-8的函数。
这个是我一直在使用的函数:
/**
* 将含有GBK的中文数组转为utf-8
*
* @param array $arr 数组
* @param string $in_charset 原字符串编码
* @param string $out_charset 输出的字符串编码
* @return array
*/
public static function array_iconv($arr, $in_charset="gbk", $out_charset="utf-8")
{
$ret = eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
return $ret;
}
在实际使用的时候调用这个函数:
self::array_iconv($description, "gbk", "utf-8")
但是有时候在转换的过程中由于内容比较复杂会出现错误:
Warning: Unexpected character in input: ''' (ASCII=39) state=1
Parse error: syntax error, unexpected T_STRING in
解决这个办法其实很简单,只要在调用这个函数的时候加上//IGNORE就可以了:
self::array_iconv($description, "gbk", "utf-8//IGNORE")