我正在阅读然后写一个文本文件。在感兴趣的数据之前和之后,文件包含许多应该保持不变的行。但是,streamreader似乎将特殊字符("
'
—
)转换为在C#文本框和记事本中显示为时髦钻石的其他字符。文本如何通过文件读/写操作完全不变地传递?感谢。
StreamWriter sw = new StreamWriter(sOutputFileName);
using (StreamReader sr = new StreamReader(sTempFileName))
{
while (sr.Peek() >= 0)
{
rdBuffer = sr.ReadLine();
txtProgressDisplay.Text += rdBuffer + "\r\n";
// parse and process some lines here
wrBuffer = rdBuffer;
sw.WriteLine(wrBuffer);
txtProgressDisplay.Text += wrBuffer + "\r\n";
}
sr.Close();
}
sw.Close();
答案 0 :(得分:3)
我几乎可以肯定这个问题与字符编码有关,即UTF8,ASCII,UTF7等。尝试使用正确的编码创建StreamReader
,
StreamReader sr = new StreamReader(sTempFileName, System.Text.Encoding.ASCII);
您可以使用Encoding.ASCII
,Encoding.UTF7
等
答案 1 :(得分:2)
您的问题似乎与编码有关。
1)检查您的文本查看器是否使用与.NET应用程序相同的编码(可能是UTF-8?)。
2)检查文件本身是否也使用与.NET应用程序相同的编码创建(您是否使用不同的编码混合字符?)。