Netzkompetenz

Blog mit Snippets, Tipps und Tricks rund um Webprogrammierung der Taywa aus Zürich

typo3 installation (und MySQL Datenbank) auf russisch in utf8

Problem: Möchte man in einer typo3 installation russische texte abspeichern kommt folgende fehlermeldung:
102: These fields are not properly updated in database: (username) Probably value mismatch with fieldtype.

Lösung:
Im typoscript nach dem initialisieren des page Objektes folgende Zeilen einfügen (stellt das frontend auf utf8 um):

Dann in der localconf.php (oder im install tool) mindestens die erste zeile des folgenden codeblocks einsetzen:

Zuletzt, wenn’s immer noch nicht klappt, die Datenbank auf im phpmyadmin utf8 umstellen und dann einige Tabellen:

Weitere Links:
http://wiki.typo3.org/index.php/UFT-8_support
http://www.typo3forum.net/forum/typo3-4-x-fragen-probleme/43438-russische-sprache.html

Autor: am
Themen: MySQL / TYPO3 Setup
Stichworte: / / / / /
  1. Hi,

    ich hab eure Anleitung gerade ausprobiert.
    Wofür braucht man SET CHARACTER SET utf8 und
    SET SESSION character_set_server = utf8?

    Viele Grüße

    Jörg

    Kommentar von Jörg — 6. Juni 2010 @ 02:24

  2. hallo jörg

    die zeile:

    $TYPO3_CONF_VARS[‘SYS’][’setDBinit’] = ‘SET NAMES utf8;’.chr(10).‘SET CHARACTER_SET utf8;’.chr(10).‘SET SESSION character_set_server=utf8;’;

    weist typo3 an, beim vebindungsaufbau die definierten MySQL befehle abzusetzen.

    damit utf8 strings auch als solche auf der website ankommen, muss die ganze kette in utf8 sein – also nicht ur der gespeicherte string und das PHP, sondern auch die kommunikation zwischen php und MySQL. eben diese wird mit obigen befehlen auf utf8 gesetzt.

    beste grüsse
    roman

    Kommentar von Roman Abt — 6. Juni 2010 @ 10:31

  3. Hi Roman,

    vielen Dank für deine Antwort!
    Nebenbei: Wenn [‘BE’][‘forceCharset’] = utf-8 gesetzt ist, werden in aktuellen TYPO3-Versionen die Werte für den Zeichensatz im FE automatisch gesetzt. Die zwei Zeilen im TypoScript-Template sind daher nicht mehr nötig.

    Viele Grüße

    Jörg

    PS: Ob der Browser eine Seite als utf-8 darstellt, sollte schon im HTTP-Header, den der Server sendet, verbindlich festgelegt werden. Auch der wird mit [‘BE’][‘forceCharset’] = utf-8 auf utf-8 gesetzt.

    Kommentar von Jörg — 6. Juni 2010 @ 12:20

TrackBack URL

Hinterlasse einen Kommentar, wir freuen uns über jedes Feedback.