मैं एक xml फ़ाइल उत्पादन के लिए सी # का उपयोग कर रहा हूँ और मैं UTF-8 में एक्सएमएल एन्कोडिंग मान सेट करने की कोशिश कर, लेकिन इसके वर्तमान outputting:XmlWriter एन्कोडिंग UTF-8 सी # में StringWriter का उपयोग कर
<?xml version="1.0"?>
यह मेरा कोड:
public sealed class StringWriterWithEncoding: StringWriter {
private readonly Encoding encoding;
public StringWriterWithEncoding(Encoding encoding) {
this.encoding = encoding;
}
public override Encoding Encoding {
get {
return encoding;
}
}
}
private string GetXml(JobStore jobStore) {
StringWriterWithEncoding sw = new StringWriterWithEncoding();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.Encoding = Encoding.GetEncoding("utf-8");
settings.Indent = true;
using(var writer = XmlWriter.Create(sw, settings)) {
writer.WriteStartDocument();
writer.WriteStartElement("resources");
writer.WriteStartElement("string");
writer.WriteAttributeString("name");
writer.WriteCData("value");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
}
return sw.ToString();
}
कुछ आसान होना चाहिए मुझे याद आ रही है?
आप .NETFiddle पर अपने कोड बता सकते हैं? – aloisdg
[इस उत्तर] से 'Utf8StringWriter') (https://stackoverflow.com/questions/955611/xmlwriter-to-write-to-a-string-instead-of-to-a-file/955698#955698) काम करना चाहिए । – dbc
आपका कोड संकलित नहीं करता है - 'स्ट्रिंगवाइटर विथ एन्कोडिंग' में पैरामीटर रहित कन्स्ट्रक्टर नहीं है। या, हो सकता है कि आपके पास वास्तव में संस्करण में पैरामीटर रहित कन्स्ट्रक्टर है जो 'एन्कोडिंग' को अपने डिफ़ॉल्ट (शून्य) मान पर छोड़ देता है, जिसका अर्थ है 'एन्कोडिंग' शून्य वापस आता है? यह आपकी समस्या को समझाएगा। वैसे भी, अगर मैं 'StringWriterWithEncoding sw = new StringWriterWithEncoding (Encoding.UTF8) करता हूं; 'सबकुछ ठीक से काम करता है। नमूना [fiddle] (https://dotnetfiddle.net/JxACgB)। – dbc