Zum Inhalt springen

Zeichencodierung

Erstellt am 3. Juli 2006 · 11 Antworten · letzte Antwort am 26. September 2006

Tags: Frage

JR1 ·

Hallo,

ich habe ein Problem mit meiner Typo3 Installation. Ich habe unser System auf einen neuen Server übertragen und seit dem funktionieren die Umlaute nicht mehr.

Hier einige Daten des neuen Servers:

FedoraCore 5
mySQL 5.0.22
php 5.1.2
Apache 2.2.0
Typo 3.8.0

Auf dem alten System war mySQL 4.0 installiert.

Jetzt habe ich schon einige Beiträge hier im Forum gelesen und folgendes unternommen:

Im Install Tool:
[BE][forceCharset] = utf-8

im Setup:

config.metaCharset=utf-8
config.renderCharset = utf-8
config.additionalHeaders = Content-Type:text/html;charset=utf-8

php.ini:
default_charset = "utf-8"

my.cnf:

[mysqld]
default-character-set=utf8
init-connect='SET NAMES utf8'

[mysql.server]
default-character-set=utf8

[mysqld_safe]
default-character-set=utf8

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

http.conf:
AddDefaultCharset UTF-8

Nun werden die Umlaute im FE aber als irgendwelche Sonderzeichen angezeigt. Wenn ich dann die Zeichenkodierung per Hand auf ISO-8859-1 umstelle, dann werden die Umlaute richtig angezeigt.

Woran kann das liegen? Ich brauche dringend Hilfe.

Danke schon mal.

Gruß

JR

JR1 ·

nur wenn es einen interessiert: Habe das Problem gelöst.

Man installiert die Extensions "convertutf" und "convert2utf8" und konvertiert damit die Inhalte. Ätzend und nicht 100%ig genau. Man muss dann die ganzen Seiten durchlaufen und die mögliche Fehler raussuchen. Aber funktioniert.

JR1 ·

Hallo Community,

ich habe es doch überschätzt und der Fehler mit den Umlauten tritt immer noch auf. Ich habe mich durch tausende Dokus, Foren usw. durchgekämpft, leider ohne Erfolg.

Meine Software:
FedoraCore 5
Apache 2.2
mySQL 5.0.22
PHP 5.1.4
TYPO3 3.8 & 4.0.1

folgendes ist in verschiedenen Dateien eingetragen:

php.ini

default_mimetype = "text/html"
default_charset = "utf-8"

httpd.conf

AddDefaultCharset UTF-8
AddCharset utf-8 .css .html .xhtml .php

my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
old_passwords=1

default-character-set=utf8
character-set-server=utf8
init-connect='SET NAMES utf8'

[mysql.server]
user=mysql
basedir=/var/lib
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=utf8

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8
character-sets-dir=/usr/share/mysql/charsets

wobei ich in "=/usr/share/mysql/charsets" keine utf-8 Datei finde.

folgendes is im Setup eingetragen:

#Auszug aus dem Mehrsprachigkeitsabschnitt
config.language = de
config.locale_all = de_DE@euro
config.metaCharset=utf-8
config.renderCharset = utf-8
config.additionalHeaders = Content-Type:text/html;charset=utf-8


# Umstellung auf XHTML
config.doctype = xhtml_trans 
config.xhtml_cleaning = all


# Send UTF-8 Notification Email Headers
#######################################
config.notification_email_charset = utf-8
config.notification_email_encoding = quoted-printable
config.notification_email_urlmode = all

Im Install Tool ist folgendes:

[BE][forceCharset] = utf-8

Wobei der Quelltext mit folgendem beginnt:
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

und es fehlt die Zeile:
<?xml version="1.0" encoding="utf-8"?>
Das liegt irgendwie an der Extension gov_accessibility, denn wenn ich diese deinstalliere, dann erscheint auch die obere Zeile wieder.

Das eigentliche Problem, die Umlaute werden andauernd als Sonderzeichen angezeigt. Wenn ich den Webserver restarte und dann die Caches in TYPO3 lösche, dann werden die Umlaute korrekt angezeigt. Aber für eine kurze Zeit, wobei die Zeit immer unterschiedlich ist. Die längste Zeit mit korrekten Umlauten ist ca. 1 Tag.

Ich brauche dringend Hilfe, bitte.

Habe auf dem Server noch andere Anwendungen am laufen und die zeigen alle die Umlaute richtig an, also muss es an TYPO3 liegen.

Gruß

JR

MarcusAK81 ·

Juhuuu ich habe das gleiche Problem wie du. Und es ist zum kotzen!!!
Falls du es schon behoben bekommen hast wäre ich über einen Hinweis sehr dankbar.

Gruß Marcus

JR1 ·

ich habe das mittlerweile auch selber gelöst. Nur der Eintrag ist etwas anders:

SET CHARACTER SET utf8;
SET NAMES utf8;
SET SESSION character_set_server=utf8;
SET character_set_connection = utf8;

Dann klappt es sehr gut. Nur die Datenbank muss dann manuell bearbeitet werden. Denn alle Sonderzeichen sind dann halt falsch in der Datenbank und werden genauso ausgegeben. Nach dem man es aber ändert, läuft alles super stabil.

JR1 ·

Das mit dem Editor hat bei mir leider nicht geklappt, habe es mit UltraEdit32 probiert. Wenn man den ganzen Dump umwandelt, läßt es sich nicht mehr in MySQL einlesen und nur die Daten umwandeln und wieder eingespielt, wird der Text ab den Umlauten abgeschnitten. Gut, werde es per Hand ändern.

Gruß

JR

JR1 ·
BastianBalthasarBux schrieb

iconv wäre die lösung 😉

oder die extension convert to utf8 oder so, die tut glaub ich auch recoden.

Das hatte ich beides auch versucht, hat aber nicht die ganze Arbeit erledigt. Irgendwie hatte ich zuviel Müll in der Datenbank. Nun ja aus den Fehlern lernt man und zum Glück läuft jetzt alles wieder.

BastianBalthasarBux ·

naja, wenn du mit ultraedit einen dump konvertierst, das ganze dann als utf8 wieder importieren willst (mittels phpMyadmin) dann musst halt auch entsprechend die datenbank auf utf-8 umstellen, bzw. im phpMyadmin geht das auch.

und man kann auch noch den ganzen db-server in der console umstellen auf default charset utf8. dann sollts auch wieder importierbar sein.

Um der Wahrheit die Ehre zu geben: wir hatten auch so ein paar problemchen mit der umstellung von typo3 auf utf8, bei bestehenden projekten.

inzwischen läufts aber ganz gut, und die vorteile überwiegen glaub ich.

lg clemens