Hi!
Rufe ich dieses auf und fuelle Umlaute ein ist alles OK. Fuelle ich aber einen echten Unicodestring rein, wie z.B 東京, dann erhalte ich:
string(16) "東京"
Irgendeine sch** Komponente konvertiert hier also, was dazu fuehrt, dass der String auch als solcher in der Datenbank landet und nicht als echter Unicode String.
Kann mir wer sagen, welche Komponente das ist, wie man es aendert und welche Implikationen das hat?Diese Komponente nennt sich Browser. Da die Seite mit ziemlicher Sicherheit in einer Kodierung vorliegt, in der die Zeichen nicht darstellbar sind, ist das Verhalten der Browser undefiniert. Einige senden dann NCRs, so wie in deinem Fall.
In deinem Test-Script war zum einen keine Meta-Angabe zum Content-Type inklusive charset-Angae und vermutlich hat auch dein Server keine charset-Angabe im HTTP-Header Content-Type mitgesendet (diese muss ein Browser bevorzugt vor der Meta-Angabe verwenden) oder eine, die nicht UTF-8 ist.
Hallo und Danke!
Ach, in der Tat, das ist korrekt!
Wenn ich meinen Testscript nun folgendes hinzufuege:
header("Content-Type: text/html; charset=UTF-8");
Dann springt es im Firefox automatisch auf "Unicode (UTF-8)" (in View, Character Encoding).
Die Frage ist jetzt nur ob ich das mit dem Apache auch regeln kann, d.h. ohne
* header() von PHP
* und <meta>-Direktive
Wie gesagt geht es bei mir um die horde Anwendung wo ich so wenig wie moeglich umschreiben moechte. Eigentlich gar nichts!
Leider scheint horde das ueberhaupt nicht zu setzen...weder in den meta-Tags noch durch zusaetzliche Header etc...
Gibt es da eine empfohlene Best Practice?
LG
Peter