非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

C#: テキストファイルの文字コードを判別する方法(3) 実際にプログラミング

      2016/06/11

[ad#top-1]
 

過去2回のエントリーで文字コードの判別する方法について、考え方を紹介しましたが、実際にプログラミングしてみました。

以下のコードは文字コードを判別するメソッドです。引数にファイルネームを渡せば文字コードが帰ってきます。もし判別不能だった場合は「???」が返ってきます。

private string getStringCode(string fname){
FileStream fs = new FileStream(fname, FileMode.Open, FileAccess.Read);
byte[] bs = new byte[fs.Length];
fs.Read(bs, 0, bs.Length);
fs.Close();

for(int i=0; i<bs.Length; i++){
if(bs[i]>=130 && bs[i]<=152) return “Shift-JIS”;//Shift-JISに決定
if(bs[i]>=161 && bs[i]<=193) return “EUC”;      //EUCに決定
if(bs[i]>=194 && bs[i]<=207) i++;              //判別不能次の先頭コードに
if(bs[i]>=208 && bs[i]<=239) return “UTF-8”;   //UTF-8
}

return “???”;
}

【関連エントリー】
テキストファイルの文字コードを判別する方法(1)
テキストファイルの文字コードを判別する方法(2) テキストファイルをバイト型配列に読み込む

 
[ad#ad-1]

スポンサーリンク

 - C#応用編