为什么我不能将XDocument XDeclaration编码类型设置为iso-8859-1?

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)

yfe*_*lum 5

请参阅有关指定TextWriter编码的答案.

旁白:ISO-8859-1是字符集,而不是编码.Unicode也是一个字符集,但是UTF-16Unicode字符集编码为字节序列.您无法将文档的编码指定为ISO-8859-1,因为您无法将文档的字符集指定为UTF-16.请注意,它Unicode是本机字符集,UTF-16Unicode.NET和Java String类以及基于文本或基于字符串的操作的本机编码.