【发布时间】:2018-03-22 08:48:52
【问题描述】:
我想创建XML 文件所以我使用这种方式:
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
Encoding = Encoding.Unicode
};
string xmlPath = @"c:\file.xml";
XmlWriter xmlWriter = XmlWriter.Create(xmlPath, settings);
xmlWriter.WriteStartDocument(false);
结果:
<?xml version="1.0" encoding="utf-16" standalone="no"?>
<cp>
<user>NA</user>
<password>NA</password>
</cu>
但我希望这个开始 XML 将是 Upper case:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
所以我尝试手动创建这个开始:
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
Encoding = Encoding.Unicode
};
string xmlPath = @"c:\file.xml";
XmlWriter xmlWriter = XmlWriter.Create(xmlPath, settings);
xmlWriter.WriteRaw("<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n");
但结果是我收到了两次start:
<?xml version="1.0" encoding="utf-16"?><?xml version="1.0" encoding="UTF-16" standalone="no"?>
【问题讨论】:
-
为什么你希望编码是大写的?大小写无关紧要。硬编码编码只是 begs 的错误,例如,如果你将文件保存为默认的 UTF-8。
-
顺便说一句,XmlWriter 使用的默认编码是 UTF-8。为什么要改成 UTF-16?