Avatar

Nochmal zum Problem mit den Umlauten mit Nachtrag (Technics)

by Auge ⌂, Tuesday, January 31, 2017, 11:36 (2869 days ago) @ Sebastian Nast
edited by Auge, Tuesday, January 31, 2017, 05:43

Hallo

Ich habe deinen Eintrag mal an den hiesigen Thread gehängt, weil es das selbe Problem ist.

[Umstellung auf mind. PHP 5.5]

Ich habe das mal probehalber gemacht, und da gabs dann im Forum auch das
Problem, das alle Threads und alle Postings in dehnen Umlaute ä, ö ,ü vorkommen
einfach nicht mehr angezeigt werden. Aber eben nicht nur das Wort mit
Umlaut wird nicht mehr angezeigt, sondern der ganze Post, bzw. der ganz
Thread sind einfach leer !?! :-(

Wie du hier bestimmt schon gelesen hast, haben die ersten Versuche, das Problem zu beheben, nicht gefruchtet. Die Suche nach "Problem mit Umlauten ab PHP5.5" lieferte mir einen Eintrag in der FAQ eines Hosters, der eine nachvollziehbare Änderung im PHP-Kern beschreibt.

Das Problem ist, wie ich schon vermutete, die Umstellung der Standardkodierung auf UTF-8, womit die ISO-kodierten Umlaute nicht mehr funktionieren. Der FAQ-Eintrag gibt als Lösung an, die vorgegebene Kodierung für die Anwendung fest auf ISO-8859-1 einzustellen.

Weitere Recherchen führten mich zu mehreren Ansätzen.

1. Einstellung in der php.ini. Das wird bei Shared-Hosting-Angeboten typischerweise nicht möglich sein. Nähreres dazu bitte beim eigenen Hoster erfragen.

2. Eventuell bieten eure Hoster die Möglichkeit einige der Einstellungen für PHP in einer eigenen php.ini, gerne auch als user.ini, in einem Benutzerverzeichnis zu ändern. Auch hierzu bitte mal den Hoster fragen.

php.ini (oder wie auch immer sie heißt):

default_charset = "ISO-8859-1"

3. Vorgabe in einer .htaccess im Forumsverzeichnis. Leider sind nicht bei allen Hostern alle möglichen Features in der .htaccess nutzbar. Die obige Angabe sollte aber entweder funktionieren oder einen Fehler mit HTTP-Status 500 auslösen. Bitte mal ausprobieren.

.htaccess:

AddDefaultCharset ISO-8859-1
php_value default_charset ISO-8859-1

[edit]Korrektur des von Alfie gefundenen falschen Dateinamens im nächsten Absatz. Die Datei heißt inc.php.[/edit]

4. Setzen der Angabe beim Skriptstart. Die Angabe ist, wenn ich nicht falsch liege, in der inc.php des Forums zu setzen, da die überall eingebunden.

inc.php:

ini_set('default_charset', 'ISO-8859-1');

Ich hoffe, dass mit einem der Ansätze (je nachdem, welcher möglich ist) die Seiten zumindest vollständig, wenn vielleicht auch mit krüppeligen Umlauten, ausgegeben wird. Ich halte den dritten Ansatz mit der .htaccess am vielversprechendsten. Die Einstellung wäre so bereits mit dem Skriptstart vorhanden und ich gehe zudem davon aus, dass die meisten Hoster diese Angabe erlauben.

Wenn das klappt, können wir weiter sehen. Ich bitte um Rückmeldung.

Was mich nun überhaupt nicht mehr wundert, ist die Tatsache, dass weder Alfies Forum noch mein (abgeschaltetes) davon betroffen sind. Seines läuft noch auf PHP 5.3, meines mit PHP 5.6, aber beide laufen mit (unterschiedlich alten) Testversionen, die UTF-8-Unterstützung haben.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!


Complete thread:

 RSS Feed of thread