PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Übergabe von Zeichen bei verschiedenen Zeichensätzen



BLUESCREEN3D
24-08-2005, 17:32
Angenommen ein User füllt in seinem Browser ein Formular einer Website aus.
Dabei benutzt er irgendwelche Sonderzeichen, die nicht in ASCII, sondern nur in Unicode enthalten sind.

Wie kommen diese Zeichen dann beim Webserver bzw. bei einem PHP-Script, dass die Eingabe verarbeiten soll an?
Unverändert? Umgewandelt in den Zeichensatz der auf dem Server eingestellt ist?

Ist "Unicode" in dem Sinne überhaupt der richtige Begriff oder müsste es "UTF-8" oder ähnliches sein?

undefined
24-08-2005, 19:13
UTF-8 ist die bessere Wahl. Siehe PHP Manual utf8_*

nEox
24-08-2005, 19:17
Hallo BLUESCREEN3D,

die Daten kommen in dem Zeichensatz an, die der Browser bei der Eingabe in das Formular verwendet.

Diesen kannst du per...

<META http-equiv="Content-Type" content="text/html; charset=ZEICHENSATZ">
...und...

header("Content-type: text/html; charset=ZEICHENSATZ");
...angeben.

Eine Liste von Zeichensätzen gibt es hier:
http://validator.de.selfhtml.org/doc/HTML_ge/inter/zeichensaetze.htm
(Link am Ende des Artikels)

UTF-8 ist die 8-Bit-Kodierung von Unicode - es gibt meines Wissens noch 7,16 und 32-Bit Varianten. UTF-8 ist sozusagen die quasi-standard Kodierung bei Unicode.

Grüße

nEox

BLUESCREEN3D
25-08-2005, 01:21
thx, demnach richtet sich der Browser nach dem Server und alles andere wäre ein Client-Fehler - das ist doch schonmal gut :D

Gibt es noch aktuelle Browser, die kein UTF-8/16/32 unterstützen?

Was wäre denn das empfohlende/übliche Verhalten für einen Browser, wenn die Website ASCII anfordert und der User Unicode-Zeichen eingibt?
Oder wenn die Website Unicode anfordert und der Browser kein Unicode beherrscht?

Romanday
25-08-2005, 06:40
Was wäre denn das empfohlende/übliche Verhalten für einen Browser, wenn die Website ASCII anfordert und der User Unicode-Zeichen eingibt?
Oder wenn die Website Unicode anfordert und der Browser kein Unicode beherrscht?

Du kannst doch mit REGEX eine Liste von erlaubten Zeichen abfragen,
und entsprechend reagieren. Alles andere wäre mir persönlich zu gefährlich.

(Kennst Du bestimmt schon::D)
http://www.php.net/manual/de/function.htmlspecialchars.php

undefined
25-08-2005, 06:55
thx, demnach richtet sich der Browser nach dem Server und alles andere wäre ein Client-Fehler - das ist doch schonmal gut :D

Gibt es noch aktuelle Browser, die kein UTF-8/16/32 unterstützen?

Was wäre denn das empfohlende/übliche Verhalten für einen Browser, wenn die Website ASCII anfordert und der User Unicode-Zeichen eingibt?
Oder wenn die Website Unicode anfordert und der Browser kein Unicode beherrscht?
Es immer die Sache des Programmierers die Eingabe Fehler seiner Klienten abzufangen ;) Deshalb wie von nEox schon angedeutet selbst dafür sorgen das der Zeichensatz der richtige ist. Fast alle führenden Browser können UTF-8