なぜUTF-8が指定されたASP.NET MVCリターンUTF-16でContentResultコントローラはいますか?

StackOverflow https://stackoverflow.com/questions/1561891

質問

私は、組み込みデバイス用のActionResultそのリターンのXMLを持っています。関連するコードは次のとおりです。

return Content(someString, "text/xml", Encoding.UTF8);

はUTF-8が指定されていても、結果として得られるXMLは

<?xml version="1.0" encoding="utf-16"?>

はASP.NET MVCはAnyCPUおよびWindows 2008サーバ上で動作としてコンパイルされます。

なぜそれがUTF-8でエンコードされたXMLを返していないのですか?

役に立ちましたか?

解決

あなたは応答に含まれるXMLのエンコーディングを持つHTTPレスポンスのエンコーディングを混乱されています。あなたはXMLをシリアル化するとき、あなたはそれがUTF-8でエンコードする必要があることを指定する必要があります。 ContentResultのエンコーディングを設定すると、単純に応答がエンコードされたかもう一方の端のブラウザに通知し、それを別のエンコーディングからXMLを変換しません。あなたはContentResultのコードを見れば、あなたはそれはそれは単にのResponse.Write(コンテンツ)を行いいることがわかります - エンコードおよびコンテンツタイプでレスポンスヘッダを設定した後、あなたが指定した

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top