在使用File.WriteAllText时遇到Unicode编码问题

9

我有一些原始数据(xml),其中肯定包含Unicode。我使用以下代码将它们写入文件:

File.WriteAllText

这似乎会删除/更改Unicode字符。是否有方法可以防止这种情况发生?

这应该不是问题,因为默认情况下WriteAllText()使用UTF8编码 - 你确定其他地方没有问题吗?请发布一些代码。 - BrokenGlass
@BrokenGlass 你可能是对的 - 它也可以是XElement.ToString() ... 这是从xelement获取unicode字符串的正确方法吗? - cs0815
@BrokenGlass 不对。我有同样的问题,加了Encoding.UTF8作为第三个参数,现在使用WriteAllText保存时不会丢失Unicode字符。 - Tomas
4个回答

15
您可以指定编码方式:
File.WriteAllText(fileName, xml, Encoding.Unicode);

6
尝试使用 File.WriteAllText 的重载,允许您指定编码 - 只需为其提供相同的原始数据编码即可。

2

请使用正确的编码方式,即第三个参数。

File.WriteAllText(file, contents, encoding);

2

你可以在WriteAllText函数中指定Encoding参数,查看可用的重载函数 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接