php代码
// 自动转换字符集 支持数组转换 /************************************************************* * 参数说明 * fContents:需要转换编码的数据源 * from:数据源内容编码 * to: 转换后的数据内容编码 *************************************************************/ function auto_charset($fContents, $from, $to) { $from = strtoupper($from); $to = strtoupper($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); } elseif (function_exists('iconv')) { return iconv($from, $to, $fContents); } else { return $fContents; } } elseif (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; } }