ajax, setRequestHeader (), Inhaltstyp, application / x-www-form-urlencoded und charset

8

Ich habe Probleme zu verstehen, wie man den Zeichensatz einstellt, wenn der Der Inhaltstyp ist nicht text / html, text / plain oder text / xml, sondern ist der Inhaltstyp "application / x-www-form-urlencoded".

Angesichts dieses (vereinfachten) Javascript-Codes:

%Vor%

Wenn ich nicht explizit die Codierung festlege,

%Vor%

Firebug sagt mir, dass der Inhalt Typ ist "application / x-www-form-urlencoded; charset = UTF-8 ."

Wenn ich den Zeichensatz zum Beispiel auf ISO-8859-1 setze,

%Vor%

firebug immer noch sagt mir "application / x-www-form-urlencoded; charset = UTF-8 ."

Wenn ich etwas wie

versuche %Vor%

dann respektiert es den Zeichensatz.

In allen Fällen geht die send () Methode so:

%Vor%

Warum wird der angegebene Zeichensatz nicht berücksichtigt, wenn der Inhaltstyp x-www-form-urlencoded ist?

HINWEIS: Ich verwende ISO-8859-1 nur als Beispiel. Mein Ziel ist es zu verstehen, was vor sich geht.

    
Fernando Basso 30.10.2013, 21:53
quelle

1 Antwort

11

Der Mime-Typ application/x-www-form-urlencoded unterstützt keine Parameter (z. B. charset ). Wenn Sie sich diesen Abschnitt der HTML5-Spezifikation ansehen, werden Sie sehen wie charset bestimmt ist (es ist kompliziert). Insbesondere gibt es eine Notiz am Ende des Abschnitts, in der erwähnt wird, dass charset nicht als Parameter für den Mime-Typ angegeben werden kann.

    
aocole 25.06.2014, 17:48
quelle