Joopi
[PHP] Der Huddel mit den Zeichensätzen - Druckversion

+- Joopi (https://forum.hermann-splitthoff.de)
+-- Forum: Wissenswertes (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=1)
+--- Forum: Programmieren (https://forum.hermann-splitthoff.de/forumdisplay.php?fid=6)
+--- Thema: [PHP] Der Huddel mit den Zeichensätzen (/showthread.php?tid=73)



Der Huddel mit den Zeichensätzen - Joopi - 07-01-2023

Der Huddel mit den Zeichensätzen ist nicht immer einfach zu bewerkstelligen.

Ein Datenbankeintrag in meiner lokalen Umgebung sieht wie folgt aus:

Zitat:I'm

Auf meinem Webspace sieht er aber so aus:

Zitat:I�m

Nach meiner bisherigen Recherche ist hier eine Vermischung von einem ISO-8859-1-Zeichen in einer UTF-8-Umgebung für die Darstellung verantwortlich.

Folgende Erklärung habe ich hier gefunden:


Zitat:Ein Beispiel für das Wort _Höhe_:

UTF-8-Text in ISO-8859-1/9/13-16-Umgebung

_Höhe_ → _Höhe_.

ISO-8859-1-Text in UTF-8-Umgebung

_Höhe_ → _H_�_he_ bzw. Fehlermeldung mit Abbruch. Ein Byte mit dem Hexadezimalwert _F6_ ist in UTF-8 nicht zulässig. Es ist üblich, für nicht konvertierbare Zeichen das [url=https://de.wikipedia.org/wiki/Ersetzungszeichen "Ersetzungszeichen"]Ersetzungszeiche[/url]n (U+FFFD) einzufügen.

Eine Lösung habe ich insofern gefunden, als das oftmals ein Zeichensatz falsch deklariert wird. Bedeutet, es gibt Verwechslungen zwischen windows-1252 und ISO-8859-1.

Die Lösung meines Problems war folgende Zeile im PHP-Script:

PHP-Code:
<?php
    
//$mailtext_neu = mb_convert_encoding($mailtext_neu, "UTF-8", "windows-1252");
    $mailtext_neu iconv('windows-1252''UTF-8'$mailtext_neu);
?>

Beide Varianten funktionieren und konvertieren den scheinbar nicht in UTF-8 vorliegenden Text korrekt um.

Gefunden habe ich die Lösung hier:

PHP: Problems converting "’" character from ISO-8859-1 to UTF-8