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();
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]
スポンサーリンク