[TYPO3-german] TYPO3 und Charset-Chaos

Raphael Weber mailinglisten at screensolutions.de
Sat May 15 18:43:12 CEST 2010


Hallo Peter,

> ich muss zugeben, dass ich das Problem auch nicht bis ins letzte
> verstanden habe. Ich wurstel mich aber ganz gut durch :-)
Ist -zumindest für mich- auch ein schwer nachzuvollziehendes Thema. 
Leider muss ich mich da zwangsläufig 'durchwurschteln'.

>>> 'forceCharset' und 'setDBinit' beiden keinen Wert zuweise, speichert
>>> TYPO3 die Sonderzeichen auch korrekt.
>
> Korrekt? Was heisst das? Was ist dann in der Datenbank, utf-8 oder
> latin? latin wahrscheinlich, das wäre nämlich das normale.
Den Dump habe ich mir von diesen Tests zwar noch nicht angeschaut, aber 
sowohl im TYPO3 Back- und Frontend als auch in der phpMyAdmin-Oberläche 
werden die Sonderzeichen üöäß dann korrekt angezeigt.

> Typischerweise hat man nämlich folgende Konstellation:
>
> TYPO3 arbeitet durch forceCharset in utf8.
> Die DB-Verbindung ist aber latin.
> Ergo werden die utf8-Zeichen als latin in der DB gespeichert.
Was ich bisher nicht bedacht bzw nicht gewusst habe, ist, dass bei 
'Datenbankverbindung' nicht nur die Verbindung der MySQL-Datenbank 
ausschlaggebend ist, sondern auch die Verbindung zwischen PHP und MySQL. 
Ich dachte bisher: "character_set_client, character_set_connection und 
character_set_database sind alle auf utf-8 engestellt, warum sollte ich 
PHP das gleiche nochmal über SET NAMES mitteilen?". Mittlerweile bin ich 
dank der Hilfe der Communities (i-worker & typo3-german) und Oliver 
Thiele [1] schon etwas schlauer. Schade, dass der Hinweis auf SET NAMES 
nicht schon im Installtool im Kontext von 'forceCharset' zu finden ist.

> Lies dir das hier durch:
>
> http://www.gerd-riesselmann.de/softwareentwicklung/php-und-utf-8-eine-anleitung-teil-1-mysql
hab ich gemacht, danke für den Link!

>> Du meinst, in TYPO3 wäre standardmässig eine Übertragung in latin1
>> konfiguriert, auch wenn die Datenbank auf utf-8 eingestellt ist?
>
> Nicht in TYPO3 - in PHP allgemein. Du musst bei jeder Datenbankabfrage
> eine utf-8-Datenbankverbindung mit set names utf8 erzwingen, sonst
> speicherst du latin der DB.
Dass war mir (s.o.) bisher nicht klar, dass PHP hier auch noch eine 
Rolle spielen kann; komplizierte Angelegenheit, finde ich.

>> Der Dump ist als utf-8-datei gespeichert. Die Datenbankverbindung ist,
>> wie gesagt, 100%ig utf-8.
>
> Das heisst, wenn du die Datei im Texteditor öffnest und diesen anweist,
> dass er utf-8 zeigen soll, dann sind die Umlaute im Dump richtig? Nur
> wenn das der Fall ist, ist der Dump wirklich in utf-8.
Nein, die Sonderzeichen im Dump sind alle verwurstet. Der Texteditor 
identifiziert die Datei als UTF-8 kodiert und zeigt Zeichen wie z.B. ü an.

Vielen Dank für deine ausführlichen Erklärungen - hast mir auf jeden 
Fall weitergeholfen!

Grüße,
	raphael

[1] 
http://www.oliver-thiele.de/cms-typo3/tutorials/typo3-mysql-utf8-umstellung.html#c156


More information about the TYPO3-german mailing list