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-16 ではなく utf-8 を返すことができません。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 宣言を追加する部分ですが、settings.Encoding が機能しないため困惑しています。助けてください!
ありがとう