如何保留类似的字符编码

时间:2010-05-27 19:13:38

标签: c# encoding text-files

我有一个包含半字符½的日志文件,我需要处理这个日志文件并将某些行重写为包含该字符的新文件。但是,当我写出文件时,字符在记事本中显示不正确。

我知道这是某种编码问题,我不确定是不是我正在写的文件不包含正确的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);
    } 
}

当我在记事本中查看原始日志时,半字符显示正确。当我查看新文件时,它没有。这告诉我问题不在于记事本能够显示角色,因为它在原始版本中起作用。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

解决方案是PEBKAC。

我正在改变程序中不创建这些文件的不同部分的编码。当我使用Encoding.Default更改了正确的文件时,它会正确显示。

感谢Jon和其他人。