11 responses to “Typo3 und UTF-8”

  1. Mike Mitterer

    Hallo, das mit der Mail geht auch einfacher… Einfach im Formular ein “hidden_field” mit dem namen “quoted_printable” und dem Wert 1.

    Danach wird die Mail nicht mehr verkodiert.

    sg Mike

  2. Stefan Halter

    Hi, ich habe zur Zeit das gleiche Problem. Nur sendet meine Extension die Mails und ich bekomme entweder zwei Mime-Header oder zumindest von wie geisteshand ein UTF-8 Mime-Header. Habe in der php.ini die Aenderung vorgenommen, aber immer noch das Problem… help cheese, Stefan

  3. hugohinkebein

    Hier ist meine Sammlung für die Umstellung:

    Komplette Datenbank auf utf-8 umgestellt. (Struktur erstellt => latin1 auf utf8, dann die Daten eingelesen) 0. editiere die typo3conf/localconf.php und füge ein: $TYPO3_CONF_VARS['BE']['forceCharset'] = ‘utf-8′; 1. Datenbank Dump der Site erstellen 2. Eine Kopie des Dumps konvertieren: recode LATIN1..UTF8 copy_of_dbname.sql 3. Bestehende Datenbanktabellen löschen 4. UTF-8 Dump zurückspielen mysql dbname < copy_of_dbname.sql oder halt erweitert um -u für user und -p für passwort

    • In TS Setup meta Charset setzen
    • In Install [setDBinit] SET NAMES utf8;
    • damit base64 encoding funktioniert (mailform) in php.ini: mbstring.internal_encoding = UTF-8

    Angeblich muß man multiplyDBfieldSize auf >1 stellen, wenn der Fehler 102 kommt, wenn man versucht, in tt_content Umlaute einzugeben. Wenn alles stimmt, kommt dieser Fehler aber nicht. Wenn >1 geht compare Database auch nicht mehr.

  4. tpits

    Hallo Hugo H.,

    was meinst Du mit: In TS Setup meta charset setzen

    ???

    Grüße TPITS

  5. ChristianH.NET

    http://typo3.org/doc...

    Man kann den metaCharset in page.config setzen. Auch das Rendern geht darüber.

    Siehe Tabelle

    page.config.metaCharset = utf-8 page.config.renderCharset = utf-8

  6. Eugen Bunen

    Die Methode mit page.config.metaCharset kannte ich, jedoch nicht im Install Tool setDBinit umzustellen.

    Wirklich nett, danke für die Hilfe und die Tipps.

  7. Patrick K

    Hallo, danke für den Hinweis. Ist dieser Punkt mit dem Multibyte-Problem als Bug bekannt? Ich finde es ein wenig unbefriedigend alle Tabellen, die vorher die Kollation UTF-8 hatten auf latin-1 zu konvertieren. Kann man in diesem Fall noch von einer reinen UTF-8 Konvertierung reden? Irgendwie ist das ja nur ein Workaround und ggf. sogar ein Fake oder? Grüße Patrick

  8. Michael Stucki

    Ich wurde auf diesen Artikel hingewiesen und möchte auf einige Fehler hinweisen: - mbstring.internal_encoding wird nur benötigt, wenn im Install-Tool für “t3lib_cs_convMethod” und “t3lib_cs_utils” entsprechend “mbstring” eingestellt wurde. - “multiplyDBfieldSize” ermöglicht das Speichern von Multibyte-Daten in Singlebyte-Zeichensätzen wie z.B. Latin1. Das funktioniert zwar, sollte aber nie verwendet werden! (keine Kompatibilität mit fremden Tools wie z.B. phpMyAdmin, falsche Sortierreihenfolge, Probleme bei Datenmigrationen). => Viel besser ist es, gleich von Anfang an den richtigen Zeichensatz für die gesamte DB zu verwenden. - Dasselbe gilt für die Konvertierung der DB nach Latin1: Es ist wenig sinnvoll, für eine UTF-8 Seite den Zeichensatz der Datenbank explizit auf Latin1 zu setzen. Ausserdem kann der Aufruf von “CONVERT TO CHARACTER SET latin1″ zu Datenverlust führen, z.B. wenn die Datenbank bereits UTF-8 ist und Zeichen enthält, welche in Latin1 nicht vorhanden sind. (Wäre die Datenbank bereits vollständig UTF-8, dann müsste sie sowieso nicht in einen anderen Zeichensatz konvertiert werden – das ergibt keinen Sinn!)

    Kurz zusammengefasst muss folgendes berücksichtigt werden: - TYPO3 arbeitet mit Daten und nutzt dafür den Zeichensatz, der in $TYPO3_CONF_VARS['BE']['forceCharset'] eingestellt ist. Standardwert ist ‘iso-8859-1′ (Latin1) oder je nach Sprache des Backends der jeweilige Standard-Zeichensatz dieser Sprache. - Die MySQL-Schnittstelle in PHP, die von TYPO3 genutzt wird, verwendet ebenfalls ihr eigenes Charset. Standardwert ist je nach Distribution unterschiedlich, kann mit “SHOW VARIABLES LIKE ‘character_set_%’” überprüft werden (folgende müssen mit dem o.g. forceCharset übereinstimmen: character_set_client, character_set_connection, character_set_result). Konfiguration erfolgt entweder über MySQL-Konfiguration (my.ini). Wer nicht sicher ist, kann den Zeichensatz auch von TYPO3 bei jedem Aufruf setzen lassen: $TYPO3_CONF_VARS['SYS']['setDBinit'] = ‘SET NAMES utf8;’ - MySQL selber nutzt dann ebenfalls ein eigenes Charset. Dabei muss insbesondere berücksichtigt werden, dass nicht nur für die Datenbank, sondern für jede Tabelle und sogar für jedes einzelne Feld ein anderer Zeichensatz verwendet werden könnte. (Dieses Gemisch taucht oft auf wenn eine Datenbank nicht richtig migriert wird, darum sollte dies bei Problemen als erstes überprüft werden.) Richtigerweise sollten auch hier alle Tabellen/Felder ebenfalls mit o.g. Zeichensatz übereinstimmen. Der Zeichensatz, der für die DB ausgewählt wurde, wird jeweils für neu angelegte Tabellen verwendet. Auch wichtig: “CONVERT TO CHARACTER SET …” setzt nicht nur die Einstellung für eine Tabelle, sondern konvertiert auch gleich deren Inhalt. Wer bereits fälschlicherweise UTF-8 in eine Latin1-DB schreibt, würde demnach doppelt kodierte Daten erhalten. Eine Lösung für dieses Problem ist hier beschrieben: http://bugs.typo3.org/view.php?id=6098#c15368 (Alternativ müssen halt einfach alle falschen Zeichen manuell korrigiert werden – das ist je nach grösse des Datenbestands verschmerzbar und einfacher…)

  9. Shinigami

    Hi,

    das muss ich glatt ausprobieren. lese mich gerade auch ein, weil die Umstellung von Typo3 auf Japanisch echt alles andere als einfach ist. Habe shift_jis in typo3 und sjis_japanese_ci in der Datenbank. So kriege ich dauernd den Fehler noch, und ich sehe nur Fragezeichen. Muss wohl an der php noch liegen. Collations scheinen dabei nicht das Problem zu sein. In Datenbank kann man die Kanji/Kana lesen, aber Typo3 spuckt und schreibt nur Fragezeichen und Sondermüll…

Einen Kommentar hinterlassen