Ich versuche gerade mehrere Installationen auf utf8 umzustellen. Das funktioniert auch im Prinzip. Nur sämtliche Extensions haben ein Problem. Ich nutze mysqli und baue dazu eine neue Verbindung in der Form
$mysqli = new mysqli('', TYPO3_db_username, TYPO3_db_password, TYPO3_db);
in jeder Extension auf. Das führt jetzt dazu, dass ein Aufruf von
$row = $result->fetch_assoc()
die Daten in Latin1 zurück liefert. Das ist so, weil bei 1&1 das in der my.cnf eingetragen ist. Ich vermute das ist bei vielen anderen Providern auch so. Die Einstellung 'SET NAMES utf8' in der localconf greift hier nicht, weil ich ich ja mysqli nutze und eine neue Verbindung aufbaue.
Die Datei /etc/my.cnf kann ich leider nicht ändern. Daher fällt mir hier nämlich nur eine Lösung ein: in allen Extensions den Befehl
$mysqli->set_charset("utf8" )
einzufügen. Allerdings habe ich mehr als 30 Extensions die ich anpassen müsste, was jetz echt lästig wäre. Wenn ich das schon machen muss, ist für mich die Frage, ob es nicht eine bessere oder richtigere Lösung gibt.
Mit $GLOBALS['TYPO3_DB']->exec_SELECTquery zu arbeiten geht nicht, weil ich recht komplexe Statements (Union, left outer join) habe, die ich damit nicht absetzen kann. Dass mir Typo3 das mysqli Objekt zur Verfügung stellt, wäre nett, geht aber wohl auch nicht.
Ich nutze Typo3 4.5 und 4.7
Beste Grüße
Jens