ファイルのエンコードを調べるには?


たまやん  2008-06-12 18:28:06  No: 144812  IP: 192.*.*.*

VB2005です。
あるテキストファイルのエンコードが何であるかを調べたいのですが、
可能でしょうか?
例えばcsvを読み込むときに、Shift_JISでもUTF-8でも読めるようにしたいのです。
よろしくお願いします。

編集 削除
やじゅ  2008-06-12 20:06:21  No: 144813  IP: 192.*.*.*

テキストファイルのエンコードについて
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-943.htm

簡易的にBOM判定でもいいかもね

編集 削除
魔界の仮面弁士  2008-06-12 20:10:35  No: 144814  IP: 192.*.*.*

厳密には無理でしょうね。

たとえば、「E0 E8」というデータを持った 2 バイトのファイルが
あったとしましょう。
このファイルを、EUC-JP のテキストとして解釈した場合は『琥』の文字を
表しますが、Shift_JIS として解釈すれば『琲』となります。
韓国の CP949 だとすれば、『「剣」の左半分が「炎」な文字』ですし、
Unicode(UTF-16)なら、外字領域にある文字を指します。
同じデータであっても、複数の解釈が可能になってしまうわけです。

また、もし UTF-8 と Shift_JIS に限定したとしても、どちらが正しいのかを
自動判定するのは困難でしょう。一応、BOM 付き UTF-8 であれば、
「これは Shift_JIS ではない」と判定することができるので救いがありますが、
BOM 無しでは、どちらとも取れるデータの組み合わせとなる可能性があります。

http://vsug.jp/tabid/63/forumid/51/postid/2951/scope/posts/Default.aspx

編集 削除