Fehler bei fremdsprachigen Seiten

Gesperrt
ncf
Beiträge: 17
Registriert: Di 15. Aug 2006, 07:57
Wohnort: Magdeburg
Kontaktdaten:

Fehler bei fremdsprachigen Seiten

Beitrag von ncf »

Hallo,

ich habe eine mehrsprachige Website, die ich in der vergangenen Woche auf 4.8.18 (von 4.8.15) umgestellt habe. (Läuft auf PHP 5.3, MySQL 5.5)

Seitdem habe ich im Contenido Errorlog folgenden Eintrag:
[26-Mar-2013 09:09:14 UTC] PHP Warning: html_entity_decode(): charset `ISO-8859-2' not supported, assuming iso-8859-1 in /var/www/pages_cms2/contenido/includes/functions.php54.php on line 59

Das encoding ISO-8859-2 ist korrekt gesetzt und funktioniert auch - bis auf diese Fehlermeldung.

Nun weiß ich, dass html_entity_decode nur bestimmte Zeichensätze unterstützt - ISO-8859-2 ist nicht dabei. Ich habe darauf alle eingesetzten Module geprüft und im Zweifel das charset auf ISO-8859-1 festgesetzt - der Fehler bleibt aber.

Jetzt habe ich mir das beanstandete Skript functions.php54.php on line 59 angeschaut und festgestellt, dass da scheinbar ein Aufruf mit einem nicht unterstützten Charset möglich ist: Beim Aufruf meiner Webseite wird auch die Zeile 534 in functions.con2.php abgearbeitet:
$value['content'] = conHtmlEntityDecode($value['content'], ENT_QUOTES, strtoupper($encoding[$lang]));

Und da wird eben das falsche Charset übergeben - oder sehe ich das falsch? Liegt der Fehler bei mir oder bei Contenido?
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: Fehler bei fremdsprachigen Seiten

Beitrag von xmurrix »

Hallo nfc,

die Funktion html_entity_decode() unterstützt ISO-8859-2 nicht, daher die Warnung. Es ist nicht dein Fehler, eigentlich auch nicht von CONTENIDO, aber man könnte in CONTENIDO darauf eingehen.

Am saubersten wäre es, wenn man die ganze Seite unter UTF-8 laufen lässt, aber das ist im nachhinein auch etwas schwierig.

Du kannst in der functions.php54.php an entsprechender Stelle das Encoding auf "ISO-8859-1" umstellen, wenn es "ISO-8859-2" ist. Der Unterschied zwischen ISO-8859-1 und ISO-8859-2 sollte nicht zu groß sein und ich denke dass html_entity_decode() damit klar kommt.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Gesperrt