Linuxのメールサーバーから取り出したメールをメモ帳で開いたところ、文字化けして内容が分かりません。
そこで、vb.netで文字コード変換しようとしましたが、上手く行きません。
TeraPadで開いて、文字/改行コード指定保存とすれば出来るのですが、ファイル数が3,000以上もあるのでプログラムを作ろうと思いました。
vb.net
1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 2 Dim FolderName As String = "C:\Users\Public" 3 Dim FName As String 4 Dim Str As String = String.Empty 5 Dim FileName As String 6 7 Try 8 For Each FName In IO.Directory.GetFiles(FolderName, "*", IO.SearchOption.AllDirectories) 9 Str = Str & FName & ControlChars.NewLine 10 Dim sr As StreamReader = New StreamReader(FName) 11 FileName = Path.GetFileName(FName) 12 TextBox1.Text = sr.ReadToEnd 13 sr.Close() 14 Dim sw As New System.IO.StreamWriter("C:\Users\Public\mail\" & FileName, False, System.Text.Encoding.GetEncoding("UTF-8")) 15 'TextBox1.Textの内容を書き込む 16 sw.Write(TextBox1.Text) 17 '閉じる 18 sw.Close() 19 TextBox1.Text = Nothing 20 Next 21 End Try 22 End Sub
上記コードを実行して、メモ帳で開くと文字化けが改善されていません。
環境:
Windows10
Microsoft Visual Studio 2010
何方かお力添えお願いします。
いまのメモ帳はutf8を読めるはずだけど、、、
元のファイルのエンコーディングはなに?
ひょっとしてeucJPとかなの?
Windows Forms アプリですか?
TextBox1.Text = sr.ReadToEnd としたときテキストボックスに表示された文字は文字化けしてませんか?
ファイルの文字コードを調べて StreamReader のコンストラクタにエンコードを指定すれば終わりと思います。
メールはプレーンテキストとは限りませんし、単一ファイルとも限りません。
メーラーで開くと良いでしょう。
https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types
もしくはメールを分解してそれぞれのファイルに変換するソフトがあると思うので、それを使うと良いと思います。
回答1件
あなたの回答
tips
プレビュー