Hallo,

Steffen Ritter schrieb:
> Hans Peter Maier schrieb:
>> Hallo,
>>
>> kann mir jemand sagen was die Option
>> setDBinit genau bewirkt?
>>
>> Meine Mysql ist auf UTF8 gestellt.
>> Typo3 auch.
>> Brauche ich dann denn Wert setDBinit SET NAME utf8; dann?
>>
>> Viele Grüße
>> HP
>>
> nein
> wenn Datenbank UND Server standardmäßig utf8 sind nicht.

Leider ist das ein sehr weit verbreiteter Irrglaube!

----------------------------------------------------------------
Das MySQL-Modul von PHP benutzt IMMER latin1 als Zeichensatz für die
Verbindung zw. PHP und MySQL!
----------------------------------------------------------------

D.h. MySQL rekodiert ggf. automatisch zw. dem Zeichensatz der Verbindung
und der Datenbank. Da das sowohl bei der Abfrage, als auch beim
Rückliefern des Ergebnis passiert, merkt man das innerhalb TYPO nicht!

Sobald jedoch eine andere Anwendung (phpmyadmin, o.a.) mit der Datenbank
arbeitet fällt das Problem auf (Im übrigen auch bei einem Backup mit
mysqldump).

Merke: forceCharset immer nur zusammen mit setDBinit verwenden! Sonst
gibt es
a) doppelt UTF-8 kodierte Daten bei einer ut8-8 Datenbank
oder
b) UTF-8 kodierte Daten in einer Datenbank wo latin1 vorne draufsteht.

Beides führt früher oder später zu Problemen.

Zur Erklärung:
TYPO3 hat (bei forceCharset=UTF-8) faktisch UTF-8 kodierte Daten und
übergibt sie an MySQL, MySQL "denkt" aber es handelt sich um latin1
kodierte Daten, da das der unweigerliche Default des PHP-MySQL-Moduls
ist. Dann schaut MySQL sich den gewünschten Zielzeichensatz der
Datenbank (bzw. des Feldes) an, und unternimmt die aus Sicht von MySQL
richtige Aktion. Konvertieren von latin1 nach UTF-8 bei einem UTF-8
Feld, oder einfaches abspeichern bei einem latin1-Feld.

Gruß,
Peter

P.S.: es gibt noch eine alternative/analoge Lösung zu setDBinit für den
Mysql-Server, die ich aber nicht empfehlen würde:
#init-connect=SET NAMES `utf8`
-- 
Peter Niederlag
http://www.niekom.de * TYPO3 & EDV Dienstleistungen *
http://www.typo3partner.net * professional services network *
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.netfielders.de
http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an