[TYPO3-german] Charset Probleme & PHP-Error

Andreas Becker ab.becker at web.de
Wed Jan 30 18:47:21 CET 2008


Hi Stefan
-----------------------
Checke Localconf.php: (typo3conf)

//UTF8 SUPPORT
    $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
    $TYPO3_CONF_VARS['SYS']['UTF8filesystem'] = 'true';
    $TYPO3_CONF_VARS['SYS']['multiplyDBfieldSize'] = '1';
    $TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'.chr(10).'SET
SESSION character_set_server=utf8;' ;
    $TYPO3_CONF_VARS['SYS']['t3lib_cs_convMethod'] = 'iconv';
    $TYPO3_CONF_VARS['SYS']['t3lib_cs_utils'] = 'iconv';

---------------------
Checke my.cnf   (mysql/bin/)

character-set-server = utf8
collation-server = utf8_unicode_ci

kannst auch ergaenzen

character-set-client = utf8
collation-client = utf8_unicode_ci

-------------------------
Checke phpinfo (gehe ins install tool und rufe es auf)

Schaue dort nach ob irgendwo noch latin1 oder etwas anderes als utf8
definiert/verwendet wird.
z.B. bei den iconv settings - dann loesche die latin... raus (default ist
utf8 swoeit ich weis - zumindest gehts bei uns so ;-)

z.B.
Directive    Local Value    Master Value
iconv.input_encoding    ISO-8859-1    ISO-8859-1
iconv.internal_encoding    ISO-8859-1    ISO-8859-1
iconv.output_encoding    ISO-8859-1    ISO-8859-1

loeschen dann muesste es utf8 sein.


-----------------------
Bist Du bei einem Hoster der als Default noch latin eingestellt hat, dann
musst du eben jedesmal wenn Du eine Datenbank LEER erstellst zuerst die
Collation aendern und dann erst deinen Convertierten File importieren!

-----------------------
Gehe in dein Haupttemplate und checke deinen META eintrag dort - steht dort
auch utf-8?

config {
   renderCharset = utf-8
   metaCharset = utf-8
   doctype = xhtml_trans
   xhtmlDoctype = xhtml_trans
   xmlprologue = none
   htmlTag_langKey = en
}

-------------------------
Arbeitest du mit automake dann musst du auch noch all deine html templates
nach meta tags absuchen da das ding die mitliest und dann das z.b. wenn da
latin1 irgend wo steht alles durcheinander wirbelt und nix wars mit utf8 ;-)

Loesche die eintraege dort einfach raus aus den Templates und definiere das
nur einmal in TYPO3 selbst im Haupttemplate.

Das automake Problem kannst du gut im Sourcecode checken. da stehen bei
automake der html templates mit metatags benutzt dann meist zig mal latin
drin. Loesche diese raus! Bei TemplaVoila ist das Problem nicht vorhanden,
da dort die im html Template angegebenen metas nur mitgelesen werden wenn
die explizit ausgewaehlt wurden in Header. Sollte das der Fall sein, dann
deaktiviere den Teil einfach dort.

----------------------------
Nun leere den Cache - ALLEN CACHE den du hast. Solltest Du ueber einen Proxy
fahren dann auch diesen.

Probiere nun aus, ob du immer noch die Fragezeichen oder z.B. ? Â Ã siehst.

Sollte das der Fall sein betrachte die betroffenen Seiten, Records separat.
z.B. bei tt_news kommt es oefters vor mussten wir feststellen. Meist lag es
bei uns daran, das zusaetzliche Leerzeichen und auch sonderzeichen wie " < >
falsch convertiert wurden. Da hilft dann Handarbeit ;-) oder einfach noch
einmal neu importieren.

Bei tt_content elementen stellten wir fest dass es oft daran liegt, dass
html code in z.B. den Texteditor von den Editoren eingefuegt wurde bzw. auch
in den Header usw. Auch hier hilft meist Handarbeit. oder das Bereinigen von
diesem wilden HTML Zeug. z.B. Editoren die anstatt die Moeglichkeiten von
TYPO3 lieber dinge in Dreamweaver entwerfen und dann per html in den
rtehtmlarea oder auch tinyrte importieren. Ein elendes Zeug. Da half meist
sogar nicht einmal neu importieren. Das beste ist das Zeug rauszuwerfen.

Beim Neuimportieren ist es wichtig dass du die ausgangssituation
wiederherstellst, solltest du mit nur einem einzigen Server arbeiten. Lege
dir daher am Besten zwei settings an (die alten als reserve und eben die
utf8)

Installiere Dir nun mysqldumper - exportiere die Tabelle direkt in utf8.
Editiere danach (replace) alle latin settings mit den gewuenschten utf8
settings - das geht gut in PsPad. Stelle auch PsPad oder deinen editor ein,
dass er in utf8 abspeichert. dann wieder alles hochladen und checken.

Ich hoffe, dass dann keine ? Â Ã mehr zu sehen sind.

alle cache*** alle index***  und auch sys_refindex sowie sys_history,
sys_log solltest du leer importieren und dann nach dem import machst du
Tools DBcheck und baust den refindex wieder auf.

Viel Erfolg.
Vielleicht hat einer noch eine bessere Methode?

Klick und alles ist UTF8 - das waere echt super.
Der Plugin fuer wordpress bleibt leider auch immer an den  haengen und
loescht jeglichen Content der danach folgt!. Leider, ansonsten funktioniert
er bestens.

Man installiert wordpress in TYPO3, installiert und aktiviert den UTF8plugin
und ruft diesen auf die datanbank zu konvertieren. Er konvertiert nun ALLE
(auch die TYPO3 Tabellen perfekt - aber eben nicht die mit dem Â. Leider.
Danach die 10 Wordpress Tabellen wieder Loeschen und schon ist man fertig.

Sollte das  in einer exportierten Datei vorhanden sein, so st das oft auch
schon ein Zeichen, dass das Ursprungssystem nicht richtig eingestellt ist -
also dort noch einmal nachchecken und man kann sich viel arbeit ersparen.
Vielleicht gibt es ja einen Tueftler, der den Wordpress Plugin auch fuer
TYPO3 umfunktioniert - waere sicher ganz brauchbar.

Schoenen Abend noch beim Konvertieren
Andi


More information about the TYPO3-german mailing list