php自动转换字符集函数,这个是从thinkphp中提取出来的函数,可以单独利用。
支持数组转换,也就是数组下的所有变量转换成想要的字符集,
小阐明下此函数,先利用mb_convert_encoding转换字符集,不可再利用iconv转换。
<?php // 自动转换字符集 支持数组转换 function auto_charset($fContents, $from='gbk', $to='utf-8') { $from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from; $to = strtoupper($to) == 'UTF8' ? 'utf-8' : $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; } } //测试内容 $ss = file_get_contents('test.html'); //test.html是gbk内容 echo auto_charset($ss); ?>正常输出中文