[TYPO3-german] Problem mit Umlauten

Martin Bless m.bless at gmx.de
Sat Sep 1 10:22:46 CEST 2007


On Fri, 31 Aug 2007 17:13:44 +0200, micho edo <micho2 at gmx.de> wrote:

>$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
>$TYPO3_CONF_VARS[SYS][setDBinit] = 'SET NAMES utf8
>   SET CHARACTER SET utf8
>   SET SESSION character_set_server =utf8
>   SET character_set_connection = utf8';
>
>konfiguriert und es klappt.

Ich habe mich letztens auch mächtig damit herumgeschlagen. Probier, ob
die in einem Template im Constants und im Setup-Feld auch Umlaute
speichern kannst. Das klappte bei mir nämlich nicht! Es hat etwas
damit zu tun, dass die beiden Datenbankfelder vom Typ 'blob' sind,
nicht 'text'.

Auf Englisch kann man die Geschichten hier nachlesen:
http://lists.netfielders.de/pipermail/typo3-english/2007-August/042105.html
http://lists.netfielders.de/pipermail/typo3-dev/2007-August/024585.html
http://bugs.typo3.org/view.php?id=6098

Wenn ich alles zusammenfasse, sind zwei Einstellungen entscheidend:

// so klappt's bei mir
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
$TYPO3_CONF_VARS[SYS][setDBinit] = 'SET NAMES utf8;';

'forceCharset' reicht, um TYPO3 komplett auf UTF-8 einzustellen. 
Die 'setDBinit' Einstellungen braucht man, wenn der Server nicht von
vorneherein so konfiguriert ist, dass alles per UTF-8 abläuft.

Wenn ich in 'setDBinit' zusätzlich noch: 'SET CHARACTER SET utf8;'
setze, geht es bei mir schief. Was da genau abläuft, habe ich bis
jetzt noch nicht begriffen.

Was macht 'SET NAMES utf8'? Hierzu sagen die MySQL-Leute:
http://dev.mysql.com/doc/refman/5.1/en/charset-connection.html

"""
Two examples of what the two set statements do exactly, and if you
look closely, you'll get the difference.

A SET NAMES 'x' statement is equivalent to these three statements:
  SET character_set_client = x;
  SET character_set_results = x;
  SET character_set_connection = x;

A SET CHARACTER SET x statement is equivalent to these three
statements:
  SET character_set_client = x;
  SET character_set_results = x;
  SET collation_connection = @@collation_database;
"""
Wie man sieht, ist 'SET NAMES utf8' eine Abkürzung für gleich mehrere
Einstellungen. Du kannst also mal nachgucken, was zur Zeit in deinen
Einstellungen doppelt gemoppelt ist.

Nicht schlecht ist auch die Idee, sich per Sql-Abfrage mit SHOW
VARIABLES mal anzeigen zu lassen, wie die ganzen SET <irgendwas>
Einstellungen denn tatsächlich aussehen.

Frage, Überlegung:
Wenn wir wissen wollen, ob unsere TYPO3-Installation UTF-8-mäßig
richtig funktioniert, nützt es wohl wenig, wenn wir uns SHOW VARIABLES
in phpMyAdmin angucken. Da können ja ganz eigene Einstellungen vorweg
gelaufen sein. Wir brauchten eigentlich die entsprechende Abfrage und
Ergebnisdarstellung aus TYPO3 heraus. Das wäre ne schöne
Diagnosehilfe. Hat das vielleicht schon jemand zur Hand?

Bis dann,

Martin [Bless]


More information about the TYPO3-german mailing list