@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

.NET(できればC#)でファイルの文字コード判別

投稿者投稿内容
クロ
会議室デビュー日: 2003/02/08
投稿数: 6
投稿日時: 2004-08-11 17:32
.NETにてあるフォルダに存在しているファイルのリストを作成し、ファイル毎に日本語文字コード(S-JIS、unicode、UTF-8 etc )を調べたいです。
そのときに、
System.IO.StreamReader reader = new System.IO.StreamReader(FileName);
Encoding fencode =reader.CurrentEncoding;
とすると、UTF-8と認識されてしまいます。
何かよい方法はないでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-11 18:21
 Readerに読み込ませるときに、エンコーディングを指定します。・・・と、MSDNに書いてあるはずだけど。


 判定は、とりあえずバイナリで読み込んで、特定のコードが出現するかどうかで判定をする、だったと思います。
Googleで検索

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-08-12 09:26 ]
クロ
会議室デビュー日: 2003/02/08
投稿数: 6
投稿日時: 2004-08-11 18:34
ReaderにEncodingを指定したいのですが、各ファイルの文字コードが不明なため指定できない状況です。
検索サイトで同様の検索の結果で一番最初に表示されるサイトのサンプルプログラムを試してみたのですが、判別がうまくいく場合といかない場合がありました。
他に判別をする方法はないでしょうか?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-08-12 07:34
引用:

他に判別をする方法はないでしょうか?



無いです。
BCL のコード判定は BOM 付きの UCS だけが対象です。
Shift_JIS, euc-jp, iso-2022jp などの判定を行う機能は BCL にはありません。
自作するか、移植するか、どこかから出来合いのコードを探してきて利用することになります。


_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-12 08:26
引用:

渋木宏明(ひどり)さんの書き込み (2004-08-12 07:34) より:

BCL のコード判定は BOM 付きの UCS だけが対象です。


 すみません、BCL, BOM, UCS って、なんですか?

IT用語辞典で検索
http://www.atmarkit.co.jp/misc/search/search.php ←こんなのあったとは!
http://www.itmedia.co.jp/dict/

BCL・・・該当無し Basic Class Library
http://msdn.microsoft.com/netframework/programming/bcl/
BOM・・・Byte Order Mark
http://www.itmedia.co.jp/dict/software/architecture/character/code/unicode/03707.html
UCS・・・Universal multi-octet coded Character Set
http://www.atmarkit.co.jp/aig/01xml/ucs.html

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-08-12 09:27 ]
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2004-08-12 09:11
>BCL・・・該当無し
Basic Class Libraryらしいです。
(.Net BCL で検索)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-12 09:25
引用:

冬寂さんの書き込み (2004-08-12 09:11) より:
>BCL・・・該当無し
Basic Class Libraryらしいです。
(.Net BCL で検索)


ありがとうございます。
そうかぁ、.NETを付ければよかったのか。Googleで検索すると、短波放送・・・そりゃ違うだろう?
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-12 10:30
諸農です。

引用:

検索サイトで同様の検索の結果で一番最初に表示されるサイトのサンプルプログラムを試してみたのですが、判別がうまくいく場合といかない場合がありました。



「うまくいかない」の場合分けはどうなっていますか?

引用:

他に判別をする方法はないでしょうか?



ちょっと前に参考にしたサイトです。
簡潔にまとめられていて、とても参考になりました。
http://kasumi.sakura.ne.jp/~gm/gpj/dev/tips/other/kanji.shtml


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/

スキルアップ/キャリアアップ(JOB@IT)