VB2005です。
あるテキストファイルのエンコードが何であるかを調べたいのですが、
可能でしょうか?
例えばcsvを読み込むときに、Shift_JISでもUTF-8でも読めるようにしたいのです。
よろしくお願いします。
テキストファイルのエンコードについて
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-943.htm
簡易的にBOM判定でもいいかもね
厳密には無理でしょうね。
たとえば、「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