ファイルの文字コード判定

ファイルの文字列からエンコードを判定

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と表示されうまく動かない。

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。