phpbar.de logo

Mailinglisten-Archive

[php] Formularverarbeitung, Zeichencodierung

[php] Formularverarbeitung, Zeichencodierung

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Okt 20 23:12:13 CEST 2005


Hi Albin,

Albin Blaschka schrieb am 20-10-2005 21:15:
> Bei der Seite, die die Formulardaten verarbeitet, sieht das Ganze gleich 
> aus, also:
> 
> setlocale(LC_ALL,'de_AT.UTF-8');
> header("Accept-Charset: UTF-8");
> 
> iconv_set_encoding("internal_encoding", "UTF-8");
> iconv_set_encoding("output_encoding", "UTF-8");
> iconv_set_encoding("input_encoding", "UTF-8");
> 
> XHTML:
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
> <meta http-equiv="content-type" content="text/html; charset=UTF-8">
> 
> Wenn ich mir dann die Daten ausgeben lasse wird z. B. aus
> Čunderlík (ein C mit "Hatschek" am Anfang, ein Slowakischer Name)
> ?underlík
> 
> und wenn ich auf das Formular zurückgehe wird ÄŒunderlà draus...

wenn "?underlík" ausgegeben wird, dann sieht es so aus, als ob das Formular
nicht UTF-8-formatiert, sondern ISO-formatiert übertragen worden ist. Auf
der anderen Seite: "ÄŒunderlÃ" sieht nach UTF-8-Format aus, das mit
ISO-Zeichensatz dargestellt wird... Das Ganze ist also etwas
widersprüchlich. ;-) Kann man sich das zufällig einmal irgendwo selbst
ansehen?

Du müßtest mal genau prüfen, wann wo welcher Zeichensatz verwendet wird
bzw. ankommt (Formular / Browser, PHP-Skript / Server...). Irgendwo scheint
da was schiefzugehen.

Hast Du übrigens schon mal die Zeile '<?xml version="1.0"
encoding="UTF-8"?>' weggelassen? Ich weiß, die ist von der Spezifikation
her korrekt, aber sie bringt halt einige Browser arg ins Schleudern. ;-)
Also versuch es einmal ohne die Zeile... :-)

Ein weiterer Ansatzpunkt wäre, die Zeichensatzeinstellungen vom Apache zu
prüfen. Ganz eventuell könnte es auch an der Locale liegen: 'de_AT.UTF-8'.
Das glaube ich aber eigentlich nicht. Du kannst ja trotzdem mal
ausprobieren, was aus dem slowakischen Namen wird, wenn Du die Locale auf
sk_SK.UTF-8 setzt - sofern Du sie auf Deinem System installiert hast.


Viele Grüße

Lutz



php::bar PHP Wiki   -   Listenarchive