Und noch ein Problem S9Y 2.4 mit PHP8

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Hanjo Iwanowitsch
Regular
Posts: 44
Joined: Sun Feb 26, 2006 3:37 pm
Location: Eutin, Germany
Contact:

Und noch ein Problem S9Y 2.4 mit PHP8

Post 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.
marie21
Regular
Posts: 12
Joined: Fri Mar 04, 2022 12:12 pm

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Post 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.
Hanjo Iwanowitsch
Regular
Posts: 44
Joined: Sun Feb 26, 2006 3:37 pm
Location: Eutin, Germany
Contact:

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Post 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 …
erAck
Regular
Posts: 236
Joined: Mon Feb 16, 2015 1:20 am

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Post 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.
onli
Regular
Posts: 2828
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Und noch ein Problem S9Y 2.4 mit PHP8

Post 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.
Post Reply