C#Streamreader:特殊字符的处理';等

本文关键字:处理 特殊字符 C#Streamreader | 更新日期: 2023-09-27 18:21:49

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

C#Streamreader:特殊字符的处理';等

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

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

您可以使用Encoding.ASCIIEncoding.UTF7

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

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

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