質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

488閲覧

文字コードを指定してファイルを保存したい

sake

総合スコア52

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2022/10/28 15:26

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
何方かお力添えお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matukeso

2022/10/28 17:23

いまのメモ帳はutf8を読めるはずだけど、、、 元のファイルのエンコーディングはなに? ひょっとしてeucJPとかなの?
退会済みユーザー

退会済みユーザー

2022/10/28 21:25

Windows Forms アプリですか? TextBox1.Text = sr.ReadToEnd としたときテキストボックスに表示された文字は文字化けしてませんか?
KOZ6.0

2022/10/28 21:32

ファイルの文字コードを調べて StreamReader のコンストラクタにエンコードを指定すれば終わりと思います。
Zuishin

2022/10/29 00:33

メールはプレーンテキストとは限りませんし、単一ファイルとも限りません。 メーラーで開くと良いでしょう。 https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types もしくはメールを分解してそれぞれのファイルに変換するソフトがあると思うので、それを使うと良いと思います。
guest

回答1

0

ベストアンサー

terapadのマクロツールを探してみましたが・・・よくわかりませんでした。
VisualStudioCodeなら一括変換できるかな?と思ったのですが、ありませんでした。
直接的な解決方法ではないですが、以下のツールなら文字コード変換できるかもしれません。
(使用の際は自己責任でお願いいたします。)
https://www.kashim.com/kanjitranslator/index.html

投稿2022/10/29 01:38

yshima1129

総合スコア179

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/10/29 03:00

本文が例えば UTF-8 の base64 エンコードとなっているとすると、 5bC+5bSO44CA5L+h5ZC+IOanmAoK6Ieq5YuV6LuK5qSc5p+744Kk44Oz44K/44O844ON44OD44OI 5LqI57SE44K344K544OG44Og44KS44GU5Yip55So44GE44Gf44Gg44GN44CB44GC44KK44GM44Go 44GG44GU44GW44GE44G+44GZ44CCCuaknOafu+OBruS6iOe0hOOBjOWujOS6huOBl+OBvuOBl+OB ...... というような形になるので、普通のテキストエディタでは何ともならないと思います。
YAmaGNZ

2022/10/29 04:04

質問者さんが >TeraPadで開いて、文字/改行コード指定保存とすれば出来る と言っています。
退会済みユーザー

退会済みユーザー

2022/10/29 05:36

だから質問に対するコメントで、 > TextBox1.Text = sr.ReadToEnd としたときテキストボックスに表示された文字は文字化けしてませんか? と聞いてます。回答はそれの答えを待ってからにするのが良さそうです。
sake

2022/10/29 08:22

yshima1129様、ありがとうございました。 教えて頂いたサイトからダウンロードしました。 完璧に変換出来ませんでしたが、ほぼ思い通りの結果を得ることができました。 ベストアンサーとさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問