2 Stimmen

Was bewirkt die Definition des Zeichensatzes?

Angenommen, ich befinde mich auf einem Computer mit dem Zeichensatz "a" und durchsuche eine Seite mit dem Zeichensatz "b", von denen "a" und "b" sehr unterschiedliche Zeichensätze sind. Speziell ist der Zeichencode für ein Leerzeichen in "a" nicht dasselbe wie in "b".

Wenn ich ein Leerzeichen in ein Textfeld auf der Seite eingebe, würde die Seite es als Leerzeichen registrieren? Und wenn es dann zur Verarbeitung an den Server gesendet wird, würde es als Leerzeichen oder ein anderes Zeichen verarbeitet werden?

1voto

Joop Eggen Punkte 101784

Ihr Browser akzeptiert einige Codierungen, wie z.B. ISO-8859-1 (Westliches Latein-1) und UTF-8 (Unicode, der Code für alles geeignet).

Der Webserver sendet eine Seite an den Browser. In den Kopfzeilen vor dem HTML-Quelltext gibt er normalerweise an:

Content-Type: text/html; charset=UTF-8

In HTML kann er dasselbe über .

Wenn der Browser eine Seite in Codierung XXX präsentiert und das Formular in dieser Codierung absendet, möglicherweise mit einer spezifischen Codierung %FC oder 纲. Dies ist eine POST- oder GET-Anfrage an den Webserver.

Der Webserver muss die Anfrage in Codierung XXX behandeln (er hat nicht mehr die Webseite). Dies erfordert bewusstes Programmieren oder das Verlassen auf Standards. Schwierig. Sie sollten nicht nötig sein, %FC und ähnliches zu decodieren.

Es handelt sich um eine sehr volatile Angelegenheit. Bitte recherchieren Sie auch anderswo. Möglicherweise habe ich nicht alle Vorbehalte aufgezeigt. (Zum Beispiel gibt es Unterschiede zwischen GET/POST und verschiedenen Browsern.)

1voto

Chris Haas Punkte 50077

Ignorieren Sie, welcher Zeichensatz Ihr Computer und Server verwendet, das ist egal. Wichtig ist der Zeichensatz der gegebenen HTTP-Anfrage/-Antwort. Wenn Sie eine Ressource anfordern und der Server den Zeichensatz "B" zurückgibt, wird Ihr Browser versuchen, die Antwort mit dem Zeichensatz "B" zu analysieren. Die meisten Browser sind in der Lage, viele verschiedene Zeichensätze zu analysieren, unabhängig von den aktuellen Spracheinstellungen des Computers. Wenn Ihr Browser den angegebenen Zeichensatz nicht kennt (was ein seltener Fall wäre, mein IE hat 34 Zeichensätze und mein Firefox hat 74), ist das speziell nicht definiert. Er könnte raten oder einen Fehler ausgeben, es liegt am Browser zu entscheiden.

Viele (oder vielleicht die meisten) Zeichensätze basieren teilweise auf ASCII und ordnen daher die ersten 127 Zeichen auf die gleiche Weise zu. Selbst der doppelbyte ISO/IEC 2022 tut dies. Alle HTML-Tags basieren auf dem ASCII-Satz, so dass der Browser in diesen Fällen möglicherweise die Codierung erraten könnte (manche nehmen vielleicht ISO-8859-1`EBCDIC` ordnen jedoch nicht zu `ASCII`. In einigen Versionen wird das `EBCDIC` `<`-Symbol auf das ASCII-`L`-Symbol abgebildet, so dass die HTML-Darstellung vollständig versagen würde und die Rohbytes (wahrscheinlich als ISO-8859-1 analysiert) stattdessen angezeigt würden.

``

Also, wenn Ihr Browser auf ein SHIFT_JIS-Dokument trifft, aber nicht weiß, wie er die Bytes analysieren soll, wird er wahrscheinlich versuchen, es mit ISO-8859-1 zu analysieren. Da die ersten 127 Zeichen in SHIFT_JIS größtenteils mit ISO-8859-1 übereinstimmen, sollte das gesamte HTML problemlos gerendert werden. Der Text wird jedoch wahrscheinlich ein "unbekanntes" Zeichen des Browsers verwenden, das manchmal ein Fragezeichen oder eine Art von Kästchenzeichen ist. Wenn dieses Dokument ein Formular enthält und Sie darin zu tippen beginnen, werden die Tasten auf Ihrer Tastatur dem entsprechen, was der Browser vermutet, nämlich wahrscheinlich wieder ISO-8859-1. Wenn Sie auf Absenden klicken, werden diese Zeichen als der "geratene" Zeichensatz codiert und so an den Server gesendet.

``

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X