[TYPO3-german] Falsche Kodierung obwohl alles auf UTF-8

Lars Peter Søndergaard l.soendergaard at lichtflut-medien.de
Wed May 20 10:39:23 CEST 2015


Hallo Johannes,

du hast geschrieben, dass du für die Ajax Lösung die "Standard-Programmierung" nutzt, ohne SET NAMES oder ähnlichem.

Meine Frage ist: nutzt du die Ajax Schnittstelle auch, um Daten in die Datenbank *einzutragen*?

Wenn das der Fall ist, könnte ein möglicher Problemablauf wie folgt sein:

- Die Daten werden als UTF-8 an das Ajax Skript übergeben.
- Da du kein SET NAMES (bzw. mysqli_set_charset) nutzt, ist die Datenbankverbindung intern auf latin1 gesetzt. D.h. MySQL denkt, die einkommenden Daten sind latin1 kodiert, und MySQL konvertiert diese nach UTF-8 um sie in der Datenbank ablegen zu können.
- Die Daten sind jetzt "doppelt kodiert" in der Datenbank.
- Beim auslesen mit Ajax passiert dasselbe in der entgegengesetzten Richtung: MySQL denkt, die Daten müssen in latin1 zurückgegeben werden, und dekodiert die utf-8 Daten nach latin1, um somit das "originale" utf-8 wieder herzustellen.
- Dein Ajax Skript gibt die nun normalen utf-8 Daten wieder aus.

- Auf TYPO3 Seite passiert das ganz umkonvertieren nicht, weil dort die korrekte Kodierung für die Datenbankverbindung gesetzt wurde.

Eine Möglichkeit herauszufinden, ob die Daten doppelt kodiert sind, ist in die Datenbank mit phpmyadmin oder ähnliches zu schauen, um zu sehen ob die Daten dort korrekt angezeigt werden.

Grüße
Lars

-----Original Message-----
From: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] On Behalf Of Johannes Hamecher
Sent: Friday, May 15, 2015 5:26 PM
To: typo3-german at lists.typo3.org
Subject: [TYPO3-german] Falsche Kodierung obwohl alles auf UTF-8

Hallo in die Runde,

ich habe folgendes Problem.

Ich habe eine Liste von Namen, die ich in eine Tabelle die korrekt auf UTF-8 eingestellt ist über ein PHP-Script importiert habe.

Wenn ich die Daten nun im TYPO3 anzeigen will, läuft es nur per AJAX fehlerfrei. Wenn ich $GLOBALS['TYPO3_DB']->sql_query($sql) ... nutze kommt fehlerhafter Text heraus.

Ein Beispiel:

Ajax:  Γεώργιος Κύρικος
TYPO3: Î"εώργιος Κύρικος
TYPO3 mit utf8_decode: �?ε�?ργιο�? �?ύρικο�?
TYPO3 mit utf8_encode: Γεώργιος ΚύρικοÏâ

Das utf9_decode scheint schon am nächsten Dran zu sein, jedoch sind immer noch Zeichen falsch.

Hat jemand eine Idee?

Viele Grüße,
Johannes

_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list