Seite 1 von 1

utf8_normalizer-Problem: Fragezeichen statt Buchstabenpaaren

Verfasst: 19.04.2008 22:46
von Mathias Rothe
Hallo,

bei mir tritt neuerdings ein wundersames Problem auf: Beim Verfassen von Beiträgen werden sporadisch jeweils 2 Buchstaben durch ein � (Fragezeichen) ersetzt.

Der Fehler tritt hinter Umlauten auf. Aus dem Satz

Er hätte gerne Rübensuppe, aber ich möchte überhaupt nichts mit so einem Fraß zu tun haben.

wird bei mir

Er hätte gerne Rü�nsuppe, aber ich möc�e übe�aupt nichts mit so einem Fraß zu�un haben.

Er hätte gerne Rü��pe, aber ich möc�e�b�up�ni�s mit so einem Fraß zu�un ha�n.

Er hätte gerne Rü���er ich möc�e�b�p�ni��i�o �em�aß zu�un ha�n.

Er hätte gerne Rü��er��öc�e�b�p�i��i��e�ß��u��.

Er hätte gerne Rü���öc�e�b���i��e��u��.

...

Mit jeder Vorschau wird es schlimmer. Andere PHP-Seiten auf dem gleichen Server (z.B. eGroupware) haben keinerlei Probleme. Was kann das sein?

Ich hatte mbstring im Verdacht, eine Änderung der Settings bringt aber keine Abhilfe.

Das Board läuft auf einem Apache 2.2.3 mit PHP 5.2.0-8+etch10.

Kennt jemand dieses Problem oder gar eine Lösung?

Verfasst: 27.04.2008 06:54
von Mathias Rothe
Der Fehler ist nicht auffindbar!

Verfasst: 27.04.2008 13:17
von Dr.Death
Das ist ein mbstring Problem auf Deinem Server.

Schau mal hier: http://www.phpbb.de/viewtopic.php?t=154 ... +charclass

Verfasst: 01.05.2008 07:36
von Mathias Rothe
Offensichtlich zeichnet die Klasse utf8_normalizer dafür verantwortlich. Diese wird von der Funktion utf8_normalize_nfc aufgerufen. Daher habe ich jetzt in der includes/utf/utf_tools.php die Funktion disabled:

Code: Alles auswählen

function utf8_normalize_nfc($strings)
{
        return $strings;
}
Damit ist das Problem zunächst behoben.

Ein besserer Weg wäre es natürlich den Fehler im utf_normalizer zu finden, aber da die Entwicklung im englischsprachigen Raum läuft und es dort keine Umlautproblematik gibt stehen die Chancen sicher nicht sehr gut.

Verfasst: 01.05.2008 12:58
von bantu
Ich denke nicht, dass damit das Problem auf lange sicht behoben ist. Ich denke eher du zerschiest damit dein Board.

Verfasst: 01.05.2008 16:10
von Mathias Rothe
Bei anderen Betreibern (Ungarn und Polen) hat sich dieser Weg aber schon bewährt (siehe phpbb.com). Allerdings gab es auch dort keine Reaktion der Entwickler.

Sollte ich Probleme bekommen ist es kein Problem, die Funktion nachträglich auf die Datenbank anzuwenden. Ich vermute aber, es handelt sich eher um ein Überbleibsel aus Zeiten alten PHP und alten MySQL, als die Datenbanken noch kein UTF-8 konnten.