$.ajax({
type: "POST",
url: "SomePage.aspx/GetSomeObjects",
contentType: "application/json; charset=utf-8",
...
});
例として使用されることもありますが、明示的な文字セットがないとソフトウェアが破損する可能性があります。
application /jsonメディアタイプのrfc4627は、セクション6のパラメーターを受け入れないと言っています。
The MIME media type for JSON text is application/json.
Type name: application
Subtype name: json
Required parameters: n/a
Optional parameters: n/a
charsetはapplication/jsonと一緒に使用すべきではないと解釈できます。
また、セクション3は、文字セットを指定する必要がないことを示しています。
JSON text SHALL be encoded in Unicode. The default encoding is
UTF-8.
Since the first two characters of a JSON text will always be ASCII
characters [RFC0020], it is possible to determine whether an octet
stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking
at the pattern of nulls in the first four octets.
00 00 00 xx UTF-32BE
00 xx 00 xx UTF-16BE
xx 00 00 00 UTF-32LE
xx 00 xx 00 UTF-16LE
xx xx xx xx UTF-8
コンテンツからUTF-8,16,32エンコーディングを推測できるためです。なぜUTF-8がデフォルトであると言われるのですか?他の文字エンコーディングを選択する方法はrfcで指定されておらず、エンコーディングはとにかく決定論的に見つけることができます。または、Unicodeをサポートする他の(UTF-8,16,32ではない)文字エンコードはありますか?
文字セットを使用できると主張する人もいます:
私はそれを落とさなければならないというあなたの評価に同意しません。RFC 2046は、「「テキスト」のサブタイプ以外のメディアタイプは、ここで定義されている文字セットパラメータを使用することを選択する可能性がある」と述べています。これは、アプリケーションタイプでの文字セットパラメータの存在に制限がないことを示します。さらに、RFC 2045は、「MIME実装は、名前が認識されないパラメータを無視する必要がある」と述べています。したがって、その存在によって害が生じていると想定することは合理的ではありません。
rfc準拠のソフトウェアは、charsetパラメーターを使用してコンテンツタイプapplication / jsonを生成できますか?rfc準拠のソフトウェアはそのような要求を受け入れる必要がありますか?