У меня есть этот код для создания канала ATOM
Dim xmlResult As New StringBuilder
Dim settings As New XmlWriterSettings
Dim atomWriter As XmlWriter = XmlWriter.Create(xmlResult, settings)
Dim atomFormatter As Atom10FeedFormatter = New Atom10FeedFormatter(feed)
atomFormatter.WriteTo(atomWriter)
atomWriter.Close()
Возвращает XML, который начинается так:
<?xml version="1.0" encoding="utf-16"?><feed xmlns="http://www.w3.org/2005/Atom">
Что бы я ни пытался, я не могу заставить его вернуть utf-8 вместо utf-16. Когда это utf-16, он не работает с IE8, но utf-8 работает нормально. Откуда я знаю, что это работает? Хорошо, я слышу, как вы спрашиваете, не могу ли я получить его, чтобы он возвращал utf-8, и в итоге я использую эту строку кода, чтобы вернуть канал в браузер:
Response.Write(Replace(xmlResult.ToString, "utf-16", "utf-8"))
Это, безусловно, худший взлом, который ты видел сегодня, если не жалко тебя!
Итак, вот что я пытался получить UTF-8:
Response.ContentEncoding = System.Text.Encoding.UTF8
Response.Charset = "UTF-8"
settings.Encoding = System.Text.Encoding.UTF8
Строка настроек - это то, что я думал, что будет работать, но не для меня. Насколько я понимаю, XML Writer - это та часть, которая добавляет декларацию XML, но в качестве настроек. Кодирование не работает, я в тупике. Пожалуйста, помогите!
Спасибо