2
我有一个将内容写入文件的StringBuilder。在每个文件的末尾,我正在写着版权符号。奇怪的是,我注意到,每当版权符号被写入时,它都以“”开头。我的代码生成该文件的内容如下所示:C# - 文件编码问题
using (StringWriter stringWriter = new StringWriter())
{
stringWriter = GetFileContent();
string targetPath = ConfigurationManager.AppSettings["TargetPath"];
using (StreamWriter streamWriter = new StreamWriter(targetPath, false))
{
StringBuilder sb = new StringBuilder(stringWriter.ToString());
// Attempted fix
string content = sb.ToString();
content = content.Replace("Â", "");
streamWriter.Write(content);
}
}
正如你所看到的,我试图做一个查找和替换。在这个过程中,我注意到一个“”不在内容本身。这使我相信在streamWriter中发生了一些事情。但是,我不确定它会是什么。
有人可以告诉我为什么在“©”符号之前会弹出“?”以及如何解决?我相信它与编码有关,但我不确定
谢谢!
我认为StreamWriter使用的默认编码是System.Text.Encoding.Default,这是平台特定的不是吗? – Glenn 2010-03-25 21:29:19
@Caelum:不,它默认使用UTF-8。 'Encoding.Default'在这方面有点误导性地命名。几乎所有的.NET API都默认为UTF-8。 – 2010-03-25 21:36:12
所以它呢,猜我应该读更多的doco .... – Glenn 2010-03-25 21:39:48