echo $begrüßung;
- Genau welche Zeichen sollen bei einem GET-Request abgeschickt werden?
Daten, zuerst kodiert gemäß der von der Zeite verwendeten Zeichenkodierung, oder der vom Formular gewünschten (Attribut accept-charset). Anschließend sollten sie URL-kodiert werden.
- Genau welche Zeichenkette soll in einem XML zur Interpretation per XSL von der Datenbank zurück kommen?
Daten, kodiert gemäß der Angabe, die du in den entsprechenden Header-Zeilen gemacht hast. Ob sich für einzelne Bereiche andere Kodierungen angeben lassen, ist mir nicht bekannt.
Erklärung des ganzen: Nehmen wir das €-Zeichen, die UTF-8 Codierung hierfür lautet %E2%82%AC
Nein, das ist die URL-kodierte Darstellung eines UTF-8-kodierten Euro-Zeichens
zu 1) Wenn ich nun aus einem InputFeld ein €-Zeichen auslese und per GET-Request verschicken möchte, was soll dann genau in dem GET-Request stehen:
Wenn die Seite UTF-8-kodiert ist, und der HTTP-Header "Content-Type" utf-8 sagt, ersatzweise die gleichlautende Meta-Element-Angabe, dann
a) €
b) %E2%82%AC
b. ein URL-kodiertes UTF-8-kodiertes Euro-Zeichen.
c) %25E2%2582%25AC (Codierung der %-Zeichen)
d) ? (Ganz was anderes woran ich gar nicht denke)
zu 2) Ich bekomme aus der Datenbank in einem XML-File ein UTF-8 Zeichen, wie soll dieses aussehen:
a) <![CDATA[ € ]]>
a. vorausgesetzt, du schaust dir das mit einem Editor an, der das gemäß UTF-8 interpretiert. Wenn er auf ISO-8859-1 eingestellt ist, siehst du dagegen €
b) <![CDATA[ %E2%82%AC ]]>
c) <![CDATA[ %25E2%2582%25AC ]]> (Codierung der %-Zeichen)
d) <![CDATA[ ? ]]> (Ein Fragezeichen weil in XML-Files keine UTF-8 Zeichen dargestellt werden können)
e) ? (Ganz was anderes woran ich gar nicht denke)
Was habe ich bisher schon gemacht?
- XSL-Files beginnen mit <?xml version="1.0" encoding="UTF-8"?>
- XSL-Files enthalten: <xsl:output encoding="UTF-8" [....] />
- XSL-Files enthalten: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> als Teil des HTML-Head-Tags
Damit hätte ich gedacht sage ich der Seite sie soll alles in UTF-8 Abschicken und alles empfangene als UTF-8 interpretieren.
Damit weist du (außer bei 2.) den Client an, alles als UTF-8 zu interpretieren. Ist die Kodierung tatsächlich eine andere, dann kann der Client die Daten nicht richtig interpretieren.
Im Moment ist es aber leider so, dass ein €-Zeichen als "%E2%82%AC" abgeschickt wird und auf der nächsten Seite werden drei einzene kryptische Zeichen dargestellt,
Wenn die so aussehen: € dann sind das die Byte-Werte eines UTF-8-kodierten Euro-Zeichens, aber als ISO-8859-1 interpretiert.
echo "$verabschiedung $name";