我有一个包含半字符½的日志文件,我需要处理这个日志文件并将某些行重写为包含该字符的新文件。但是,当我写出文件时,字符在记事本中显示不正确。
我知道这是某种编码问题,我不确定是不是我正在写的文件不包含正确的bom或什么。
我尝试使用Encoding枚举中的所有可用编码选项读取和写入文件。
我正在使用此代码:
string line;
// Note i've used every version of the Encoding enumeration
using (StreamReader sr = new StreamReader(file, Encoding.Unicode))
using (StreamWRiter sw = new StreamWriter(newfile, false, Encoding.Unicode))
{
while ((line = sr.ReadLine()) != null)
{
// process code, I do not alter the lines, they are copied verbatim
// but i do not write every line that i read.
sw.WriteLine(line);
}
}
当我在记事本中查看原始日志时,半字符显示正确。当我查看新文件时,它没有。这告诉我问题不在于记事本能够显示角色,因为它在原始版本中起作用。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
解决方案是PEBKAC。
我正在改变程序中不创建这些文件的不同部分的编码。当我使用Encoding.Default更改了正确的文件时,它会正确显示。
感谢Jon和其他人。