【C#】ファイルの文字コードを取得・判別する

C#

ファイルの文字コードを判別する方法を紹介します。

符号化形式(符号化スキーム)エンディアンの区別バイト順マーク (BOM)
UTF-80xEF 0xBB 0xBF(なおBOM無しはUTF-8Nと呼ばれることがある)
UTF-16BE0xFE 0xFF
LE0xFF 0xFE
UTF-16BE(付加は認められない)
UTF-16LE(付加は認められない)
UTF-32BE0x00 0x00 0xFE 0xFF
LE0xFF 0xFE 0x00 0x00
UTF-32BE(付加は認められない)
UTF-32LE(付加は認められない)
UTF-70x2B 0x2F 0x76 ※ (※は次のバイトの値によって異なり、0x38、0x39、0x2B、0x2Fのいずれかがくる)

BOMについては下記を参考にしています。

ファイル先頭のBOMを読み取って文字コードの判別を行います。

ファイルの文字コードを判別してEncodingオブジェクトを取得するには以下の様に使用します。

C#プログラミング
凡人プログラマーのブログ

コメント