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
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an