File.CreateText()的文档说:“创建或打开用于写入UTF-8编码文本的文件。”
但是,创建的文件是用西欧编码的。
String template = File.ReadAllText(Settings.Default.template, Encoding.UTF8);
template = template.Replace("{{content}}", "éèê");
using (StreamWriter sw = File.CreateText(item_path))
{
sw.Write(template);
}
我使用此代码生成带有<meta charset="UTF-8">
的HTML页面,但是除非手动将浏览器的编码设置更改为“西欧”,否则带重音的字母无法正确显示。
有人知道为什么文件不是UTF-8格式吗?
答案 0 :(得分:0)
我无法重现您的问题,这是我用来生成一堆低端utf8字符并将其写入文件的代码:
StringBuilder sb = new StringBuilder();
for (int i = 1; i < 1025; i++)
{
sb.Append((char)i);
}
string fn = Path.GetTempFileName();
using (var sw = File.CreateText(fn))
{
sw.Write(sb.ToString());
sw.Flush();
sw.Close();
}
Process.Start(Path.GetDirectoryName(fn));
这是我在记事本++中打开时看到的内容:
相同的操作会带来什么?