Dav*_*enn 7 c# xml encoding linq-to-xml
为什么下面的代码没有设置XML声明编码类型?它总是将编码设置为utf-16.我错过了很明显的东西吗?
var xdoc = new XDocument(
new XDeclaration("1.0", "iso-8859-1", null),
new XElement("root", "")
);
Run Code Online (Sandbox Code Playgroud)
输出:
<?xml version="1.0" encoding="utf-16"?>
<root></root>
Run Code Online (Sandbox Code Playgroud)
请参阅有关指定TextWriter编码的答案.
旁白:ISO-8859-1是字符集,而不是编码.Unicode也是一个字符集,但是UTF-16将Unicode字符集编码为字节序列.您无法将文档的编码指定为ISO-8859-1,因为您无法将文档的字符集指定为UTF-16.请注意,它Unicode是本机字符集,UTF-16是Unicode.NET和Java String类以及基于文本或基于字符串的操作的本机编码.