Существует ли стандартная литеральная константа, которую я могу использовать вместо “utf-8” в C# (.Net 3.5)?

Я хотел бы найти лучший способ сделать это:

XmlNode nodeXML = xmlDoc.AppendChild(
    xmlDoc.CreateXmlDeclaration( "1.0", "utf-8", String.Empty) );

Я не хочу думать о "utf-8" по сравнению с "UTF-8" по сравнению с "UTF8" по сравнению с "utf8", поскольку я ввожу код. Я хотел бы сделать свой код менее подверженным опечаткам. Я уверен, что некоторая стандартная библиотека имеет declatred "utf-8" как константа / строка только для чтения. Как я могу найти его? Кроме того, что относительно "1,0"? Я предполагаю, что главные версии XML были перечислены где-нибудь также.

Спасибо!

5
задан JJD 7 October 2015 в 08:45
поделиться

3 ответа

Try Encoding.UTF8.WebName.

8
ответ дан 13 December 2019 в 05:31
поделиться

Вы можете использовать Encoding.UTF8 из System.Text

2
ответ дан 13 December 2019 в 05:31
поделиться

Этого легко избежать, используя XmlWriter для написания документа. Модуль записи по умолчанию автоматически кодирует в utf8 и генерирует инструкцию обработки:

var doc = new XmlDocument();
doc.InnerXml = "<root></root>";
using (var wrt = XmlWriter.Create(@"c:\temp\test.xml")) {
    doc.WriteTo(wrt);
}

Вывод:

<?xml version="1.0" encoding="utf-8"?><root></root>
2
ответ дан 13 December 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: