※ ChatGPTを利用し、要約された質問です(原文:C# StreamReader,StreamWriter による文字化)
C# StreamReader,StreamWriter による文字化めの対処方法
このQ&Aのポイント
C#で文字化けが起こる問題への対処方法を教えてください。
メモ帳で作成したファイルを読み込むと文字化けする問題を解決する方法を教えてください。
C#のStreamReaderとStreamWriterを使用する際の文字化けの対処方法について教えてください。
C# StreamReader,StreamWriter による文字化
C# StreamReader,StreamWriter による文字化け
お世話になります。
文字化けで悩んでいます。
Visual Studio 2008 C# にて、テキストファイルからデータを読んで別のテキストファイルに
そのまま書き出す(もちろん実際の運用では加工するわけですが)処理で文字化けが起こります。
そのテキストファイル自身を C# で作れば問題はないのですが、メモ帳を使って書き込んだファイルでは
文字化けが起こります。
対処方法があれば教えてください。
以下はその実験に使ったコードです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
// これは正常に書き込みできました
StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt");
sw.WriteLine("これはてすとです。");
sw.WriteLine("This is test.");
sw.Close();
// これも正常に読み込め、書き込みもできました
StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt");
sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest.txt");
while (!sr.EndOfStream)
{
sw.WriteLine(sr.ReadLine());
}
sr.Close();
sw.Close();
// 次はあらかじめメモ帳で作ったファイルを読んで、別のファイルに書き出します
// これが文字化けします
sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test2.txt");
sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest2.txt");
while (!sr.EndOfStream)
{
string dat = sr.ReadLine();
sw.WriteLine(dat);
Console.WriteLine(dat);
}
sr.Close();
sw.Close();
}
}
}
お礼
ありがとうございます。 実はこの質問を載せてからなかなか現れずに「サポート情報を~~」などと 表示されていて、困っておりました。 その間に StreamReader の第2引数に「Encoding.Default」を追加した結果、 思うように動くようになっていました。 あと、同じような内容の過去ログも見て、Microsoft のページも参考にしていました。 おかげさまで解決しました。 ありがとうございました。ご紹介のページは参考にさせていただきます。