string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] )
可见第二个参数是非必填的, 如果省略了 $encoding_list 将会使用 mb_detect_order() 自动获取字符集, 所以可对代码做如下调整:return mb_detect_encoding($data);return mb_detect_encoding($data, mb_detect_order());
修改后的code<?php /**
* 获取编码集
*/function getEncoding($string){ return mb_detect_encoding($string, mb_detect_order());
}//测试$k = "哈哈";
$encoding = getEncoding($k);
var_dump($encoding, $k);
$k = iconv($encoding, "utf-8", $k);
var_dump(getEncoding($k), $k);exit;
// 示例图