utf8_decode
(PHP 4, PHP 5, PHP 7, PHP 8)
utf8_decode — Konvertiert eine Zeichenkette von UTF-8 nach ISO-8859-1 und ersetzt ungültige und nicht darstellbare Zeichen
Diese Funktion ist seit PHP 8.2.0 DEPRECATED (veraltet). Von der Verwendung dieser Funktion wird dringend abgeraten.
Beschreibung
$string
): string
Diese Funktion konvertiert die Zeichenkette string
von der UTF-8
-Kodierung nach
ISO-8859-1
. Bytes in der Zeichenkette, die kein gültiges
UTF-8
sind, und UTF-8
-Zeichen, die
nicht in ISO-8859-1
existieren (also Codepoints größer
als U+00FF
), werden durch ?
ersetzt.
Hinweis:
Viele Webseiten, die ausgewiesen sind, die
ISO-8859-1
-Zeichenkodierung zu verwenden, nutzen in Wirklichkeit die ähnlicheWindows-1252
-Kodierung, und Webbrowser interpretierenISO-8859-1
-Webseiten alsWindows-1252
.Windows-1252
ermöglicht zusätzliche druckbare Zeichen, so wie das Euro-Zeichen (€
) und geschweifte Anführungszeichen (“
”
), anstelle von bestimmtenISO-8859-1
-Kontrollzeichen. Diese Funktion konvertiert solcheWindows-1252
-Zeichen nicht korrekt. Verwenden Sie eine andere Funktion, wennWindows-1252
-Konvertierung erforderlich ist.
Parameter-Liste
-
string
-
Eine UTF-8-kodierte Zeichenkette.
Rückgabewerte
Gibt die ISO-8859-1-Übersetzung von string
zurück.
Changelog
Version | Beschreibung |
---|---|
8.2.0 | Diese Funktion ist veraltet. |
7.2.0 | Diese Funktion wurde von der Erweiterung XML in den Kern von PHP verschoben. In früheren Versionen war diese Funktion nur verfügbar, wenn die Erweiterung XML installiert war. |
Beispiele
Beispiel #1 Grundlegende Beispiele
<?php
// Konvertiert die Zeichenkette "Zoë" von UTF-8 nach ISO 8859-1
$utf8_string = "\x5A\x6F\xC3\xAB";
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";
// Ungültige UTF-8-Sequenzen werden durch '?' ersetzt
$invalid_utf8_string = "\xC3";
$iso8859_1_string = utf8_decode($invalid_utf8_string);
var_dump($iso8859_1_string);
// Zeichen, die es in ISO 8859-1 nicht gibt, z. B. '€'
// (Euro-Zeichen), werden ebenfalls durch '?' ersetzt
$utf8_string = "\xE2\x82\xAC";
$iso8859_1_string = utf8_decode($utf8_string);
var_dump($iso8859_1_string);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
5a6feb string(1) "?" string(1) "?"
Siehe auch
- utf8_encode() - Konvertiert eine Zeichenkette von ISO-8859-1 nach UTF-8
- mb_convert_encoding() - Convert a string from one character encoding to another
- UConverter::transcode() - Convert a string from one character encoding to another
- iconv() - Konvertiert eine Zeichenkette von einem Zeichensatz in einen anderen