なぜUTF-8が指定されたASP.NET MVCリターンUTF-16でContentResultコントローラはいますか?
-
21-09-2019 - |
質問
私は、組み込みデバイス用の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(コンテンツ)を行いいることがわかります - エンコードおよびコンテンツタイプでレスポンスヘッダを設定した後、あなたが指定した
。所属していません StackOverflow