Tach!
[...]
Du lenkst vom Thema ab. Der strittige Punkt war deine Behauptung, FormData würde sich selbst umkodieren. Diese Behauptung hast du damit mitnichten belegt.
Also ich denke schon, daß der Begriff Stringkontext hier trefflich passt.
Das denke ich nicht, denn "String" ist in diem Fall viel zu allgemein.
Umgekehrt: String ist ein Sonderfall für ein Scalar. Skalarer Kontext wäre also richtiger.
Was letztlich über die Leitung geht, ist ein String. Und selbst das ist nicht richtig, denn er kann immer noch gemäß der verschiedenen Typen des Transfer-Encodings formatiert sein.
Über die Leitung geht eine Bytesequenz die gar keine Kodierung kennt. Letzerere wird nämlich in einem Header Content-Type: text/html; charset=utf-8
(Beispiel) übertragen.
Der Kontext ist also nicht einfach nur "String", sondern beispielsweise application/x-www-form-urlencoded and multipart/form-data. Und diese Format ist erstmal das, in das die Formulardaten zu bringen sind.
Um auch das mal wieder richtig zu stellen: application/x-www-form-urlencoded and multipart/form-data sind nicht der Kontext sondern das sind Enctypes bzw. Content-Types.
Beispiel: Content-Type: multipart/form-data; boundary=---__xy__----
Der Skalare Kontext ergibt sich über die gesamte Übertragungsstrecke, weil diese transparent ist. Transparenz heiß z.B.:
Sende ich einen String, bekomme ich einen String. Sende ich ein Objekt, bekomme ich ein Objekt.
Transparenz heißt: Dazwischen ist nichts.
MfG