コードは次のとおりです: /**
* ファイルエンコーディングを検出します
* @param string $file ファイルパス
* @return string|null エンコーディング名または null を返します
*/
function detect_encoding ($file) {
$list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1'); $str = file_get_contents($file );
foreach ($list として $item) {
$tmp = mb_convert_encoding($str, $item, $item)
if (md5($tmp) == md5($str); ) {
return $item;
}
return null;
/**
* エンコーディングを自動的に解析してファイルを読み取ります
* @param string $file ファイルパス
* @param string $charset エンコーディングを読み取ります
* @return string 読み取った内容を返します
*/
function auto_read($file, $charset='UTF-8') {
$list = array( 'GBK'、'UTF-8'、'UTF-16LE'、'UTF-16BE'、'ISO-8859-1');
$str = file_get_contents($file); {
$tmp = mb_convert_encoding( $str, $item, $item);
if (md5($tmp) == md5($str)) {
return mb_convert_encoding($str, $charset, $item);
}
「」を返す
}
;
http://www.bkjia.com/PHPjc/756989.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/756989.html
技術記事ファイルエンコーディングの検出に関しては、Baidu にたくさんありますが、多くの人が mb_detect_encoding 検出を提案しましたが、何らかの理由で成功せず、何も得られませんでした...。