moin moin.
Ich hatte das Problem hier schon mal geschildert, konnte es aber nicht lösen.
Noch immer schaffe ich es nicht meine webseite mit php/mysql auf utf-8 umzustellen.
mit iso 8859-1 würde es gehen, aber ich würde schon gerne auch ausländische oder seltene zeichen darstellen können.
trotz langem suchen und probieren, besteht immer noch folgendes problem (obwohl eig. über all utf-8 steht, wo man eine zeichenkodierung eintragen kann.):
----------------------------------------------
gebe ich text ins gästebuch ein, (z.b. fghfdüßsj8), landet der in der mysql-tabelle, und phpmyadmin zeigt ihn mir in etwa so (hab punkte gesetzt um die entities(?) zu zeigen: fghfdhj&.Atilde;&.curren;&.Atilde;&.frac14;&.Atilde;Ÿf
wieder zurück im gästebuch, sieht er so aus: fghfdhjäüÃ�f
stelle ich nun im FF die ansicht/zeichenkodierung auf iso8859-1, sieht er wieder anders aus : fghfdhjäüßf
--------------------------------------------------------------
drehe ich das ganze um, und gebe direkt in phpmyadmin ein paar zeichen ein (z.b. asdgdshööäüüßsdthy<aw5), kommen die im gästebuch als asdgdsh������sdthy an.
stelle ich hier im FF die ansicht/zeichenkodierung auf iso8859-1, kommt folgendes raus : asdgdshööäüüßsdthy
------------------------------------------------------
ich finde einfach den fehler nicht, verstehe nicht was da genau passiert. - habe mir schon den artikel von gerd riesselmann durchgelesen (http://www.gerd-riesselmann.de/softwareentwicklung/php-und-utf-8-eine-anleitung-einleitung), aber kriegs nicht auf die reihe.
kann man irgendwie abfragen, welche zeichen, welche kodierung, tatsächlich gespeichert wird? anscheinend werden die "falschen" zeichen auch nochmal "falsch" angezeigt, sodass man garnicht mehr weiß was los ist.
oder kennt jemand ein ebook oder anleitung/tutorial, was das thema mysql, php, zeichensätze behandelt, das wäre auch nicht schlecht.
mfg, h.
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Die String-Funktionen von PHP nutzen standardmäßig als interne Kodierung ISO-8859-1 (wie eigentlich alles in PHP4/5), wenn Du also UTF-8 einfach nur an htmlentities übergibst bekommst Du hinten zerhauene Sonderzeichen raus. Du kannst das über zwei Wege umgehen:
$string = utf8_encode ( htmlentities ( utf8_decode ( $string ) ) );
oder gleich sinnvoll:
$string = htmlentities ( $string, ENT_COMPAT, 'UTF-8' );
letzteres hilft natürlich nicht, wenn Du eine Funktion nutzt bei der sich die Kodierung nicht angeben lässt wie z.B. str_replace (wobei man dann behelfsweise noch auf preg_replace ausweichen kann).