• ベストアンサー

テキストファイル(英語&日本語)を読む時に文字化けいたします

 今晩は,いつも勉強させていただいております. 質問させていただきます.どうぞよろしくお願いいたします.  テキストファイル(ほとんどが自作のFortranコードで,英語と日本語のみで ございます)を読み込みたいのですが,全角文字の読み込み (下記コードになります)で文字化けいたします..  Dim SR As New System.IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(51932))   '↑ここのエンコード(?)が怪しいのでは,などと考えている次第です.  Dim text As String = SR.ReadToEnd()  MsgBox("/" & text & "/")    '↑「text」が化けます...  エンコード(?いまいち理解しておりませんorz)の種類がおかしいのでは, というところまでなんとか行き着きまして,色々と検索いたしておりますと  http://www.atmarkit.co.jp/fdotnet/dotnettips/013enumenc/enumenc.html にまとめてくださっておりましたので,思いつく数字を「51932」の代わりに 入れてみましたが,どれも全角文字が文字化けいたします.. 「0 shift_jis 日本語 (シフト JIS) 」 「932 shift_jis 日本語 (シフト JIS) 」 「1200 utf-16 Unicode 」 「51932 euc-jp 日本語 (EUC) 」「1200 utf-16 Unicode 」  もしかすると別の部分に問題があるのかもしれませんが.. 調べておりますと, http://dobon.net/vb/bbs/log3-25/15325.html などよく似た症状なのですが,真似いたしましても解決いたしませんでした・・  もし,日本語と英語のテキストファイルすべてに通用するようなお勧め エンコード方法のようなものがございましたら,ご紹介いただきたくお願い申し上げます.  お詳しい方がいらっしゃいましたら,是非ともアドバイスいただきたく どうぞよろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

試していないエンコードのうち、可能性が高そうな順で。。。 65001 utf-8 Unicode (UTF-8) 1201 unicodeFFFE Unicode (Big-Endian) 50220 iso-2022-jp 日本語 (JIS) 20932 EUC-JP 日本語 (JIS 0208-1990 and 0212-1990) 10001 x-mac-japanese 日本語 (Mac) エンコードが分からなくなった時の我流の調べ方 1. バイナリを見て判断。 2. ブラウザで開いて正しく表示されるエンコードを探す。 3. メモ帳で開いて文字化けしなければ「名前を付けて保存」の文字コードを確認。 あと、お気づきかもしれませんが、コードページ 0 は、システムの既定のエンコードです。Windowsが日本語版だからこそshift_jisになっているだけですので 0 = shift_jis と覚えないようにご注意を。 おすすめのエンコード。。。 私がよく使うのは、Unicode(UTF-16), UTF-8, Shift_JISあたりですかね。XMLやHTMLはUTF-8で書くことがほとんどです。 どーでもいい話ですが、気になったのでVisual Studio 2005のコードを見てみたらVB(*.vb)はShift_JIS、C#(*.cs)はUTF-8でした。 なぜ違うのだろう。。。(?_?)

MKT_
質問者

お礼

 どうもありがとうございます!!m(_ _)m >可能性が高そうな順で。。。 >65001 utf-8 Unicode (UTF-8) ビンゴでございます^^b >2. ブラウザで開いて正しく表示されるエンコードを探す。 あ.確かにMsgBoxの表示と同じ化け方になりました. >3. メモ帳で開いて文字化けしなければ「名前を付けて保存」の文字コードを確認。 なんとメモ帳の保存時に出ていたんですね.今まで気付きませんでした^^; どうもありがとうございます! >あと、お気づきかもしれませんが~ > 0 = shift_jis と覚えないようにご注意を。 今知りました!w 覚えます!(`-´ゞ >よく使うのは、Unicode(UTF-16), UTF-8, Shift_JIS どうもありがとうございます!!助かります! >VB(*.vb)はShift_JIS、C#(*.cs)はUTF-8でした と併せて考えても,今後読み込むソースファイルに応じてエンコード方法を 変える必要があるということですね・・実際,UTF-8にしてから 他のファイル(日本語文書)が読めなくなりました・・orz  今後のためにプログラム側からエンコードを知る方法が何かあれば良いのですが・・  色々とアドバイスいただきまして,どうもありがとうございました!! とりあえず今からFormの上にエンコード種類のコンボボックスを追加します^^; どうもありがとうございました!!!!

その他の回答 (1)

  • akanekor
  • ベストアンサー率52% (102/194)
回答No.1

とりあえず、今のテキストファイルのエンコードの種類見てみれば よろしいかと。 自分がよくやるのは エディタ(秀丸等)で開いて「エンコードの種類」を見て判断しています。 エディタ(秀丸等)で開いたとき、エンコード失敗のエラーが出たら、 ファイルのフォーマット異常の可能性も判断できますし。 ただ、あらかた、試しているようなので、 残りの可能性は utf-8 くらいしかない気がする。

MKT_
質問者

お礼

 どうもありがとうございます!! 秀丸で確認してみましたところ,utf-8でございました. No.2氏からもutf-8の番号をご紹介いただけておりましたので 試してみましたところ,読めるようになりました^^ ・・しかしFortlanコード以外の普通の文書が読めなくなりました orz この続きはまた検索して頑張ってみます. >エディタ(秀丸等)で開いたとき、エンコード失敗のエラーが出たら、 >ファイルのフォーマット異常の可能性も判断できますし。  存じませんでしたm(_ _)m 勉強になります.どうもありがとうございます!  この度はご閲覧・アドバイスいただきましてどうもありがとうございました. ありがとうポイントですが,No.2氏からお勧めエンコードも詳しく ご紹介いただけましたのでNo.2氏に優先して付けさせていただきます.  また見かけたらどうぞ助けてやってくださいm(_ _)m この度はおかげで助かりました.^^どうもありがとうございました!!