C#Streamreader:处理特殊字符\“\'等

时间:2012-01-28 19:25:10

标签: c# streamreader streamwriter

我正在阅读然后写一个文本文件。在感兴趣的数据之前和之后,文件包含许多应该保持不变的行。但是,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();

2 个答案:

答案 0 :(得分:3)

我几乎可以肯定这个问题与字符编码有关,即UTF8,ASCII,UTF7等。尝试使用正确的编码创建StreamReader

StreamReader sr = new StreamReader(sTempFileName, System.Text.Encoding.ASCII);

您可以使用Encoding.ASCIIEncoding.UTF7

答案 1 :(得分:2)

您的问题似乎与编码有关。

1)检查您的文本查看器是否使用与.NET应用程序相同的编码(可能是UTF-8?)。

2)检查文件本身是否也使用与.NET应用程序相同的编码创建(您是否使用不同的编码混合字符?)。