Mailinglisten-Archive |
Hallo Marcel, Marcel Kurz wrote: > ich hab eine Datei die Daten im UTF8 Format enthält. wirklich? Ich setze bei utf8 immer folgendes in den View: Content-Type: text/html; charset=utf-8 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> In meine "config.php": ini_set('default_charset', 'utf-8'); > Diese lese ich mit PHP aus und will Sie dann in eine MySQL 4.1.22 > Datenbank schreiben. Bei dem Schreiben geht aber irgendwie der > Zeichensatz verloren. > Wenn ich die ausgelesenen Daten im Browser ausgebe stimmt der > Datensatz noch. IMO: Übernimmt PHP eine Charset Kodierung, je nachdem wie es eingestellt ist, vielleicht erklärt es das. Wenn du prepared statements verwendest (oder mysql_real_escape) wird der Zeichensatz entsprechend kodiert, wenn du z.B. deine Seiten in ISO-8859-1 hast und default_charset = ISO-8859-1, deine DB aber auf utf8, brauchst du kein utf8_encode / utf8_decode. > Wenn ich vor dem INSERT noch ein SET NAMES 'utf8' und > SET CHARACTER SET 'utf8' setze, dann bekomme ich nur '?????' in > der DB. Ich setzte auch die beiden Queries, direkt nach dem db connect. > Ohne SET NAMES und SET CHARACTER SET stehen komische Zeichen > in der DB aber kein UTF8. > Die Tabelle und das Feld steht auf utf8_general_ci. Mit welchem Programm schaust du in die Datenbank? Bitte nicht phpmyadmin benutzen, Nimm lieber direkt MySQL unter der Konsole, dort muss u.U auch NAMES und CHARACTER SET gesetzt werden, kommt auf die MySQL-Config an. Beste Grüße, Martin
php::bar PHP Wiki - Listenarchive