ファイルの文字コード判定
ファイルの文字列からエンコードを判定
PHP
// 対象ファイル
$file_name = 'foo.csv';
// 全体ではなく0~1024までを取得
$contents = file_get_contents($file_name, NULL, NULL, 0, 1024);
// エンコーディング
$encodings = array('UTF-8', 'EUC-JP', 'SJIS');
foreach ($encodings as $encodingsVal){
// 判定
if ($contents == mb_convert_encoding($contents, $encodingsVal, 'auto')){
echo $encodingsVal;
break;
}
}
// 必要であれば全エンコーディング
// $encodings = mb_list_encodings();
// print_r($encodings);
UTF8のBOMの有無はBOM付き、BOM無し判定を参照。
mb_detect_encodingで文字列のエンコーディングを検出できるとあるが、UTF-8やSJISであるのみ関わらずASCIIと表示されうまく動かない。