gbk转utf-8函数出错解决办法

我们在日常写作代码的时代经常要用到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")
经验分享 程序员 微信小程序 职场和发展