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();
我几乎可以肯定这个问题与字符编码有关,即UTF8、ASCII、UTF7等。请尝试创建StreamReader
传递正确的编码,
StreamReader sr = new StreamReader(sTempFileName, System.Text.Encoding.ASCII);
您可以使用Encoding.ASCII
、Encoding.UTF7
等
您的问题似乎与编码有关。
1) 请检查您的文本查看器是否使用与.NET应用程序相同的编码(可能是UTF-8?)。
2) 检查文件本身是否也使用与.NET应用程序相同的编码创建(是否将字符混合在不同的编码中?)。