حفظ ملف LINQ إلى XML كـ ANSI بدلاً من UTF-8 في C# (IVY)
-
20-09-2019 - |
سؤال
في C#، أحتاج إلى إنشاء ملفات XML للاستخدام مع Ivy و Nant ، لكنني أواجه صعوبة في الحصول على الترميز الصحيح في ملف الإخراج.
إذا استخدمت Xelement's .save ("C: foo.xml") ، أحصل على الصحيح يبحث ملف ، لكن Ivy و/أو Nant ينزعجون ، حيث يتم حفظ الملف فعليًا باستخدام UTF-8 ، لكنني في الواقع بحاجة إلى حفظه كـ ANSI حتى أتمكن من استخدامه.
لديّ bodge في مكانه في الوقت الحالي ، وهو استخدام .ToString () للحصول على النص ثم استخدام StreamWriter لكتابته إلى ملف.
من الناحية المثالية ، أود ضبط التنسيق خلال .save () ولكن لا يمكنني العثور على أي معلومات حول هذا.
شكرًا.
المحلول
xDocument.save لديه عدد من الأحمال الزائدة.
تتيح لنا الكتابة عبر مجموعة XMLWriter التي تم إنشاؤها بشكل صحيح اختيار ترميز ASCII.
var doc = XDocument.Parse( "<foo> barṸbaz</foo>" );
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new ASCIIEncoding();
using (var writer = XmlWriter.Create( "xelement.xml", settings )) {
doc.Save( writer );
}
لا تنتمي إلى StackOverflow