Sven Rautenberg: <option value=" "> wird nicht als   übergeben :-(

Beitrag lesen

Hallo
Ich habe mit PHP ein Formular erstellt.
In dem werden Daten aus einer Datenbank angezeigt. Bei den letzen beiden Formularfeldern kommen noch Auswahlmöglichkeit " " dazu. Eines der letzten beiden Felder habe ich unten eingefügt.
Das Problem ist, daß die Variable nach einem submit nicht den Wert   hat, sondern %A0.
Kann man es schaffen, daß sie den Wert   bekommt?

Du hast dem Browser gesagt, daß du als Value ein geschütztes Leerzeichen haben willst, und das hat er gesendet. %A0 sollte der entsprechende Code dafür sein.

Wenn du die Zeichenfolge &-n-b-s-p-; haben willst, dann mußt du das dem Browser natürlich sagen:

<option value="&nbsp;">

Auch wenn es technisch möglicherweise nicht ganz korrekt ist: Beim Empfang der Seite wird vom Browser eine Konvertierung der Zeichen vorgenommen, bevor diese genutzt werden, z.B. für die Anzeige. Dabei wird natürlich der Zeichensatz der Seite ausgewertet (Content-Encoding) - daran erkennt der Browser, was für Zeichen z.B. deutsche Umlaute sind, um sie im systemeigenen System korrekt darstellen zu können.

Weiterhin werden in diesem Schritt auch die Entities konvertiert. ä wird zu ä. & wird zu &. " wird zu ". Und   wird zu einem Non-Breaking-Space (auch Shift-Space). Und das gilt auch für die Angaben in Attributen. Nicht umsonst meckert der Validator bei Parametern in der URL, daß er dort Entities findet, die er nicht kennt:
<a href="seite?var1=sowas&var2=anderes"> ist falsch.
<a href="seite?var1=sowas&var2=anderes"> ist korrekt.

Das gleiche ist bei dir das Problem.

- Sven Rautenberg