hallo zusammen
bin grade dabei meine webseiten auf unicode umzustellen. dabei bin ich folgendermaßen vorgegangen:
-
AddDefaultCharset in der http.conf ausgeschaltet
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> im header
-
kein default_charset in der php.ini
-
mysql variablen sind folgendermaßen eingestellt:
character set client utf8 utf8
character set connection utf8 utf8
character set database utf8 utf8
character set results utf8 utf8
character set server utf8 utf8
character set system utf8 utf8
collation connection utf8_general_ci utf8_general_ci
collation database utf8_general_ci utf8_general_ci
collation server utf8_general_ci utf8_general_ci
so. meine frage ist folgende:
wenn ich eine seite dynamisch mit php aufbaue lese ich die texte aus der datenbank aus und schreibe sie einfach ins html dokument (also ohne htmlentities o.ä.).
das klappt auch wunderbar. wenn ich allerdings den wert eines textfeldes damit befüllen möchte werden manche sonderzeichen nicht richtig dargestellt, sprich aus einem zeichen (z.B. §) werden zwei (Â$). was einerseits logisch ist, da unicode ja multibyte ist, andererseit wundert es mich das die darstellung im normalen html text funktioniert, bei eingabe-textfeldern aber nicht. um die zeichenkette in einem eingabefeld richtig darstellen zu können muß ich htmlentities(utf8_decode($string)) machen.
ein weiteres problem ist das ich zwei rechner habe mit der selben php version, der selben mysql version und beide sind genau gleich konfiguriert (siehe oben).
wenn ich mit dem phpmyadmin einen dump von einer datenbank mache und in der anderen datenbank einfüge werden manche sonderzeichen wie oben beschrieben in die tabellen eingetragen.
bin für hinweise jeglicher art dankbar.
grüße
gerold