Kann charset-parameter verwendet werden, die mit application/json content-type im http/1.1?

Beispielsweise ist es gültig ajax-request:

$.ajax({
    type: "POST",
    url: "SomePage.aspx/GetSomeObjects",
    contentType: "application/json; charset=utf-8",
    ...
});

Ist es als Beispiel verwendet, manchmal oder software brechen kann, ohne explizite charset -.

Der rfc 4627 für application/json media type sagt, dass es nicht akzeptieren alle Parameter, die in Abschnitt 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

Es kann interpretiert werden, dass der Zeichensatz nicht verwendet werden sollte mit application/json.

Und Abschnitt 3 schlägt
es ist nicht notwendig, um anzugeben, charset:

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

da UTF-8,16,32 Codierungen kann geschlossen werden aus dem content. Warum sagt Sie, dass UTF-8 ist Standard? Den Weg zu wählen, eine andere Zeichenkodierung nicht angegeben ist in der rfc und die Codierung gefunden werden kann deterministisch sowieso. Oder gibt es andere (nicht UTF-8,16,32) Zeichensätze, die Unicode unterstützen?

Einige argumentieren, dass charset verwendet werden kann:

Ich Stimme mit Ihrer Einschätzung, dass es muss gelöscht werden. RFC-2046
besagt, dass "andere Medien-Typen als Subtypen von "text" wählen könnte, für
beschäftigen Sie den charset-parameter, wie hier definiert," was bedeutet, dass
es gibt keine Beschränkung auf die Anwesenheit der charset-parameter auf
Anwendungs-Typen. Außerdem, RFC 2045 besagt, dass "MIME
Implementierungen ignorieren müssen alle Parameter, deren Namen Sie nicht
erkennen." Also, es ist nicht vernünftig anzunehmen, dass es irgendeinen Schaden
durch seine Präsenz.

Können rfc-konforme software generieren Sie content-type application/json mit einem charset-parameter? Sollten rfc-konforme software akzeptieren Sie solche Anfragen?

InformationsquelleAutor jfs | 2012-10-27
Schreibe einen Kommentar