- PR -

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

投稿者投稿内容
クロ
会議室デビュー日: 2003/02/08
投稿数: 6
投稿日時: 2004-08-12 12:20
お世話になっています。
うまくいかない場合とは、unicodeのファイルが判別できない状況です。
今現在使用している文字コードがS-JIS、UTF-8、unicodeです。
unicodeのファイルがS-JISやEUCとして判別されてしまいます。

よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-12 13:11
諸農です。

引用:

うまくいかない場合とは、unicodeのファイルが判別できない状況です。


ええ、そういう状況だということは判っています。
たずねているのは、どのような判定方法(ロジック)で、
どんなデータが含まれている(含まれていない)時に
判定をミスってしまうのか、です。

引用:

今現在使用している文字コードがS-JIS、UTF-8、unicodeです。
unicodeのファイルがS-JISやEUCとして判別されてしまいます。


SJISとEUCでかぶらない文字(美乳?)を探すとか。
前の投稿で紹介したサイトにそういったことが書いてあったと
思いますが。

ちなみにどんなロジックなんでしょうか?

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

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
クロ
会議室デビュー日: 2003/02/08
投稿数: 6
投稿日時: 2004-08-12 13:37
お世話になっています。
説明不足で申し訳ないです。

判定方法は前の投稿で紹介していただいたサイトのサンプルプログラムを
そのまま使用しています。
(自作のプログラムにて取り込みたいため、EXE形式のフリーソフトではなく
ソースの公開されているものを使用したいと思っています)
そのサンプルプログラムだとunicode(UTF-16)のファイルがS-JISやEUCと
識別されてしまいます。
(サンプルプログラムではunicode(UTF-16)の判定処理が入っていない
ように思いました)

といった状況です。

よろしくお願いいたします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-12 16:20
諸農です。

引用:

そのサンプルプログラムだとunicode(UTF-16)のファイルがS-JISやEUCと
識別されてしまいます。



同じデータファイルを対象にしても、検査するたびに結果がSJISと
EUCのどちらかになるのですか?それは、ランダムに結果が変わる
のでしょうか?

ちなみに、UTF8を想定したデータファイルでもSJISorEUCのどちらか
に誤判定されるのですか?

判定したいデータファイルをバイナリエディタで開いて、
どの部分で誤認識しているのか、誤判定の元になっている
のか、の検証作業はどのようにしていますか?
その検証作業に合わせて、入手したコードの手直しは
できないものなのでしょうか?

引用:

(サンプルプログラムではunicode(UTF-16)の判定処理が入っていない
ように思いました)



そのような解説は書かれていませんでしたから、入っていないと思い
ますが。。

ちなみにUTF8とUTF16だと、
http://www.websina.com/bugzero/kb/unicode-bom.html
を参考に、BOMの判定をしてみてはいかがですか?

あ、でも、SJISorEUCへの誤判定を回避する方法が先になるのかな。

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

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
クロ
会議室デビュー日: 2003/02/08
投稿数: 6
投稿日時: 2004-08-12 16:32
お世話になります。

同じデータファイルを対象にしている場合は、検査するたびに結果が
変わるということはなく、ファイルごとにS-JISかEUCと判別されていました。


ご指摘いただいたBOMの判定ロジックを追加したところ、UTF-16のファイルが
識別できるようになり、一通りのファイルで文字コードの判別ができるように
なりました。

諸農さん、ありがとうございました。

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