मैं एक बग हल करने के लिए जहां आरएसएस के सभी फ़ीड मैं उत्पादन कर रहा हूँ http://captainobvio.us इंटरनेट एक्सप्लोरर में निम्न त्रुटि उत्पादन पर कोशिश कर रहा हूँ (संस्करण 8 और 9):नेट ServiceModel.Syndication - बदल रहा है आरएसएस पर एन्कोडिंग फ़ीड
फ़ीड कोड त्रुटि वर्तमान निर्दिष्ट एन्कोडिंग पर एन्कोडिंग समर्थित है। रेखा: 1 चरित्र: 40
<?xml version="1.0" encoding="utf-16"?>
मुद्दा यह है कि वास्तविक एन्कोडिंग HTTP हेडर के माध्यम से भेजा प्रकार क्या दस्तावेज़ वाणी की तुलना में अलग है।
public ContentResult Index()
{
var feed = _syndication.SyndicateIdeas(_repository.GetIdeas(0,15).Ideas);
var sb = new StringBuilder();
using (var writer = XmlWriter.Create(sb, new XmlWriterSettings { Encoding = Encoding.UTF8, NewLineHandling = NewLineHandling.Entitize, NewLineOnAttributes = true, Indent = true}))
{
feed.SaveAsRss20(writer);
writer.Close();
}
return Content(sb.ToString(), "application/rss+xml", Encoding.UTF8);
}
और यहाँ मेरे कोड वास्तव में .NET 4.0 में, फ़ीड बनाने System.ServiceModel.Syndication प्रयोग करने के लिए ऐसा दिखाई देता है:
यहाँ मेरी कोड HTML में चारा उत्पादन लिखने के लिए कैसा दिखता हैvar feed = new SyndicationFeed("CaptainObvio.us - Recent Ideas",
"The most recent ideas posted by the Community on CaptainObvio.us", new Uri("http://captainobvio.us/"), "CaptainObvio.us", new DateTimeOffset(ideas[0].DatePosted), items)
{
Generator = "CaptainObvio.us - http://captainobvio.us/"
};
return feed;
मैं क्या करना चाहता हूं XML दस्तावेज़ को utf-16 के बजाय utf-8 पढ़ने के लिए बदलना है। मैंने यह देखने के लिए एन्कोडिंग नेमस्पेस की भी जांच की कि क्या यूटीएफ 16 विकल्प था (इसलिए मैं XML दस्तावेज़ के बजाय HTTP शीर्षलेख को सही कर सकता था) और वह एक नहीं ढूंढ पाया।
क्या XML दस्तावेज़ पर सीधे एन्कोडिंग विशेषता को System.ServiceModel.Syndication से बदलना आसान तरीका है? इस मुद्दे को ठीक करने का सबसे आसान तरीका क्या है?
डारिन, उत्कृष्ट उत्तर। मैंने स्ट्रिंगबिल्डर को इस मुद्दे के स्रोत के रूप में देखने का भी विचार नहीं किया था, और एक्शन रिसेट के उप-वर्गीकरण के आपके सुझाव उत्कृष्ट हैं। अगर मैं आपको एक से अधिक बार बढ़ा सकता हूं, तो मैं चाहता हूं। – Aaronontheweb
@Aaronontheweb, खुशी है कि मैं मदद कर सकता हूं। –