[TYPO3-german] UTF-8-Problem bei Chinesisch

Jochen Rieger j.rieger at connecta.ag
Mon Feb 13 10:45:54 CET 2006


Hi Gunnar,


> Na schick, mal wieder so 'n Internet-Forum, wo die Anmeldung nicht klappt.
> Könntest Du bitte den relevanten Text hier zitieren.

das ist nicht "mal wieder so 'n Internet-Forum". Das ist der Bugtracker 
von TYPO3, der hilft, die Software immer weiter zu verbessern Bei dem 
muss man sich natürlich anmelden. Sollte eigentlich funktionieren. Den 
Kommentar "Na schick" finde ich da etwas unangebracht. Wie auch immer..

>> Da handelt es sich irgendwie um ein reencoding mancher Zeichen seitens
>> MySQL.
> 
> Ich habe hier eine komplett selbst programmierte Site (PHP/MySQL), bei der
> funktioniert das Schreiben&Lesen von UTF8 einwandfrei, auch in der Datenbank
> selbst stehen reine UTF8-Daten; typo3 läuft auf dem selben System. Insofern
> vermute ich das Problem eher bei typo3 denn bei MySQL.

Wie gesagt, wir haben das Problem behoben durch MySQL Einstellung. Das 
kannst Du entweder in der my.cnf vornehmen:

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8


Oder aber vor jedem Query folgende MySQL-Kommandos absetzen:

SET NAMES utf8;
SET CHARACTER_SET utf8;

Das muss dann in der Datei /t3lib/class.t3lib_db.php (Zeile 827ff) 
gepatcht werden:

function sql_pconnect($TYPO3_db_host, $TYPO3_db_username, 
$TYPO3_db_password) {
         global $TYPO3_CONF_VARS;
         if ($GLOBALS['TYPO3_CONF_VARS']['SYS']['no_pconnect']) {
             $this->link = mysql_connect($TYPO3_db_host, 
$TYPO3_db_username, $TYPO3_db_password);
         } else {
             $this->link = mysql_pconnect($TYPO3_db_host, 
$TYPO3_db_username, $TYPO3_db_password);
         }
         if ($TYPO3_CONF_VARS["BE"]["forceCharset"]=='utf-8') {
             mysql_query("SET NAMES utf8",$this->link);
             mysql_query("SET CHARACTER_SET utf8",$this->link);
         }

         return $this->link;
     }

Achja ... Du hast noch gar nicht geschrieben, welche MySQL-Version Du 
verwendest. Das beschriebene gilt meines Wissens hauptsächlich für 
4.1... Aber bin mir nicht 100%ig sicher.

In TYPO3 4.0 gibt es mittlerweile die Möglichkeit, MySQL-Kommandos in 
der localconf.php einzutragen, welche vor den Queries bzw. nach den 
Connects ausgeführt werden.

Beste Grüße,
Jochen

-- 
:: innovative it-strategies ::
::                          ::
:: www.connecta.ag          ::



More information about the TYPO3-german mailing list