Zum Inhalt springen

Probleme mit UTF-8 und eigener Extension

Erstellt am 23. Mai 2007 · 3 Antworten · letzte Antwort am 23. Mai 2007

Tags: Frage

IgM ·

Ich habe eine mehrsprachige Website in der auch chinesische Zeichen vorkommen. Die Anzeige auf der Website erfolgt korrekt.

In meiner Extension gibt es jedoch folgendes Problem:

1.) Wenn ich per

echo ($this->pi_getLL('nav_previous'));

chinesischen Text ausgebe, der in der locallang.xml enthalten ist, werden nur ? ausgegeben. Die Datei ist als UTF-8 angelegt.

2.) Wenn ich via Typoscript den Wert setze, z.B.

plugin.user_navigator_pi1._LOCAL_LANG.default.nav_previous = [hier chinesischer Text]

werden irgendwelche seltsamen Zeichen ausgegeben.

Typo3 ist für UTF-8 konfiguriert:
Localconf: $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
Templateconf: config.metaCharset = UTF-8
DB ist ebenfalls als UTF-8 angelegt.

3.) Wenn ich den Text in meiner Extension mit

echo "[hier chinesischer Text]";

direkt ausgebe, wird er korrekt angezeigt.

Hat jemand eine Idee woran das liegen könnte?

steffenk ·

Dein Fehler ist, das in der default-section keine Sonderzeichen enthalten sein dürfen. Diese ist i.d.R. für englisch. In der lang-Section kannst Du die Sonderzeichen nutzen, und das geht ohne Probleme.

IgM ·
steffenk schrieb

Dein Fehler ist, das in der default-section keine Sonderzeichen enthalten sein dürfen. Diese ist i.d.R. für englisch. In der lang-Section kannst Du die Sonderzeichen nutzen, und das geht ohne Probleme.

Vielen Dank für den Tipp.

Nun habe ich die config für den chinesischen Bereich wie folgt geändert:

config.language = cn

Jetzt habe ich in der XML-Datei stehen:

...
<languageKey index="cn" type="array">
<label index="nav_next">[chinesischer Text]</label>
...

Allerdings werden jetzt wieder Fragezeichen ausgegeben.

Wenn ich dagegen

plugin.user_navigator_pi1._LOCAL_LANG.default.nav_previous = [hier chinesischer Text]

eingebe, wird der Text korrekt ausgegeben??

IgM ·

Lösung: Typo3 locallang erkennt cn nicht sondern will für chinesisch ch.

Korrekte Lösung:

config.language = cn

locallang.xml:

...
<languageKey index="cn" type="array">
<label index="nav_next">[chinesischer Text]</label>
...