PHP UTF-8 Umlaute

Bei Problemen mit den Umlauten in PHP, liegt das meist an einer falschen Zeichenkodierung.  

Bei Angabe von UTF-8 und einer Zeichenkodierung von ISO 8859-1 oder windows-1252 kodiert (also als ISO 8859-1 oder windows-1252 abgespeichert), wird als Beispiel � anstelle von ä ö ü angezeigt.

Bei Angabe von ISO 8859-1 oder windows-1252, werden die Umlaute bei Verwendung von UTF-8 als ä ö ü oder so ähnlich ausgegeben.

Wichtig ist dabei, wie die Daten gespeichert werden. Ob die Datenbank oder bei Textdateien die Datei richtig kodiert ist.

Bei Verwendung von Textdateien sollten zusätzlich zum richtigen Format: UTF-8, in PHP der richtige Header verwendet werden:

<?php
header('Content-Type: text/html; charset=UTF-8');
?>

Alternativ kann die Kodierung in der .htaccess Datei angegeben werden: AddDefaultCharset UTF-8.

UTF-8 testen

Bei falsch angelegten Dateien (falsche Kodierung) oder falsch abgespeicherten Datenbankeinträgen können die Werte wie folgt getestet werden:

Um einen String in PHP auf UTF-8 zu testen, kann folgende Funktion verwendet werden:

function is_utf8($str) {
    return (bool) preg_match('//u', $str);
}

Sollte ein String nicht in UTF-8 sein, kann dieser in UTF-8 umgewandelt werden:

if (!is_utf8($string))$string=utf8_encode($string);
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


veröffentlicht am 06.05.2020 von Bernhard


Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Mehr Details