Page 1 of 1

Und noch ein Problem S9Y 2.4 mit PHP8

Posted: Mon Feb 13, 2023 6:01 pm
by Hanjo Iwanowitsch
Liebe Leute,

das Update 2.3.x auf 2.4 funktionierte tadellos. Danke dafür.

Aber Strato ningelt wegen PHP 7.4. Wenn ich auf PHP 8 wechsele, wird mein Blog grundsätzlich angezeigt, aber mit zerschossenen Umlauten und Sonderzeichen; zum Beispiel statt

"Die »künstliche Intelligenz« ChatGPT schreibt Texte. Sie erledigt diese Aufgabe besser als frühere Chatprogramme – trotzdem hat sie natürlich ebenso wenig Verständnis für das Geschriebene wie ihre Vorgänger."

die unschöne Version

"Die »künstliche Intelligenz« ChatGPT schreibt Texte. Sie erledigt diese Aufgabe besser als frühere Chatprogramme – trotzdem hat sie natürlich ebenso wenig Verständnis für das Geschriebene wie ihre Vorgänger."

Woran kann’s liegen und wie kann ich’s ändern?

Gruß:
Hanjo.

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Posted: Sun Feb 26, 2023 1:14 pm
by marie21
Schau mal auf den Charset "Latin-1" macht hier die Probleme.

Umstellung auf UTF-8 und in den Datenbanken die Umlaute ggf. korrigieren.

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Posted: Sun Feb 26, 2023 6:32 pm
by Hanjo Iwanowitsch
Danke für Deine Hilfe, Marie. In der Tat habe ich das auch vermutet. Alle Tabellen stehen aber auf utf8_general_ci.

Ich lese hier:
Wenn ein Dokument als Unicode (UTF-8) abgespeichert wurde, aber als ISO 8859-1 interpretiert wird, geschieht folgendes:
Erwartete Ausgabe: ä ö ü
Wirkliche Ausgabe: ä ö ü
Genau das ist es ja, was passiert …

Es kann natürlich sein, dass die Umlaute in der Tabelle falsch sind.

Daher habe ich in der DB Folgendes probiert:

Code: Select all

UPDATE serendipity_comments set
    `body`= REPLACE(`body`,"ß", "ß"),
    `body`= REPLACE(`body`, "ä", "ä"),
    `body`= REPLACE(`body`, "ü", "ü"),
    `body`= REPLACE(`body`, "ö", "ö"),
    `body`= REPLACE(`body`, 'Ä', 'Ä'),
    `body`= REPLACE(`body`, "Ãœ", "Ü"),
    `body`= REPLACE(`body`, "Ö", "Ö"),
    `body`= REPLACE(`body`, '€', '€');
Dann aber werden die Umlaute bei normaler Funktion (also unter PHP7.4 statt PHP8) als Fragezeichen dargestellt. Dafür finde ich auf der oben genannten Seite folgende Erklärung:
Wenn die Umlaute als Fragezeichen dargestellt werden, dann wird ein als ISO 8859-1 kodiertes Dokument als UTF-8 interpretiert. Dies stellt das Gegenstück zur oben genannten Situation dar.
Hm …

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Posted: Sun Feb 26, 2023 6:55 pm
by erAck
Und beide Erklärungen passen zusammen: was immer zwischen dir und der Datenbank sitzt, spricht unter PHP 8 Latin-1 / ISO 8859-1 und unter PHP 7.4 UTF-8. Wenn das nicht in der S9y Datenbankkonfiguration ist, dann im Apache / PHP 8 environment suchen, was da anders ist.

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Posted: Tue Feb 28, 2023 12:10 am
by onli
Im Zweifel auch mal gucken, was bei Konfiguration -> Datenbankeinstellungen unter "Datenbank-Zeichensatzkonvertierung aktivieren" gesetzt ist. Wenn es an ist ausmachen, wenn aus anmachen. Auch drauf achten, dass unter Generelle Einstellungen -> Zeichensatz-Auswahl wirkluch auf UTF-8 steht.