Zum Inhalt springen

utf8_decode()

Die Funktion utf8_decode() ist eine integrierte PHP-Funktion, die eine Zeichenkette mit UTF-8-Codierung in eine ISO-8859-1-Codierung umwandelt. UTF-8 ist ein beliebtes Zeichencodierungsformat, das alle Unicode-Zeichen unterstützt, während ISO-8859-1 ein Standard-Zeichencodierungsformat ist, das nur eine begrenzte Menge an Zeichen unterstützt.

Hinweis: utf8_decode() ist seit PHP 8.2 veraltet. Verwenden Sie für moderne Anwendungen stattdessen mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8').

Die Funktion ist nützlich, wenn Sie UTF-8-codierten Text haben, der in einem System angezeigt oder verwendet werden muss, das nur die ISO-8859-1-Codierung unterstützt. Durch die Verwendung von utf8_decode() können Sie den Text in ISO-8859-1 umwandeln und sicherstellen, dass er korrekt angezeigt oder verwendet wird.

Syntax

Die Syntax der Funktion utf8_decode() lautet wie folgt:

UTF-8-Zeichenkette in PHP decodieren

php
utf8_decode($string)

wobei $string die UTF-8-codierte Zeichenkette ist, die Sie in ISO-8859-1 umwandeln möchten.

Anwendungsbeispiele

Werfen wir einen Blick auf einige praktische Beispiele zur Verwendung von utf8_decode() in PHP.

Beispiel 1: Umwandeln von UTF-8-codiertem Text in ISO-8859-1

Nehmen wir an, Sie haben eine Zeichenkette mit UTF-8-Codierung, die Sie in ISO-8859-1 umwandeln möchten. Dazu können Sie die Funktion utf8_decode() verwenden, wie hier gezeigt:

Umwandeln von UTF-8-codiertem Text in ISO-8859-1 in PHP

php
<?php

$text = "Zoë";
$iso_text = utf8_decode($text);
echo bin2hex($iso_text);

?>

Dieser Code definiert eine Zeichenkettenvariable $text, die UTF-8-codierten Text enthält. Anschließend wird die Funktion utf8_decode() verwendet, um den Text in ISO-8859-1 umzuwandeln, und das Ergebnis in $iso_text gespeichert. Abschließend wird die hexadezimale Darstellung des ISO-8859-1-codierten Textes ausgegeben.

Rückgabewert & ungültige Sequenzen: Die Funktion gibt die umgewandelte Zeichenkette zurück oder false im Fehlerfall. Wenn die Eingabe ungültige UTF-8-Sequenzen enthält, werden diese durch ein Fragezeichen (?) ersetzt.

Beispiel 2: Umwandeln von UTF-8-codiertem Text aus XML

Nehmen wir an, Sie haben eine XML-Datei mit UTF-8-codiertem Text, die Sie lesen und in ISO-8859-1 umwandeln möchten. Dazu können Sie die SimpleXML-Bibliothek in PHP zum Lesen der XML-Datei und die Funktion utf8_decode() zur Umwandlung des Textes verwenden, wie hier gezeigt:

Umwandeln von UTF-8-codiertem Text aus XML in PHP

php
$xml = simplexml_load_file("data.xml");
foreach ($xml->item as $item) {
  $title = utf8_decode($item->title);
  $description = utf8_decode($item->description);
  echo "$title: $description\n";
}

Dieser Code lädt eine XML-Datei data.xml mit der Funktion simplexml_load_file() und durchläuft jedes <code><item></code>-Element mit einer foreach-Schleife. Innerhalb der Schleife wird die Funktion utf8_decode() verwendet, um den UTF-8-codierten Text in den <code><title></code>- und <code><description></code>-Elementen in ISO-8859-1 umzuwandeln, und die Ergebnisse in zwei neuen Variablen $title und $description zu speichern. Abschließend wird der ISO-8859-1-codierte Text in der Konsole ausgegeben.

Damit dieses Beispiel funktioniert, sollte data.xml eine Struktur wie diese enthalten:

xml
<root>
  <item>
    <title>Example Title</title>
    <description>Example Description</description>
  </item>
</root>

Fazit

In diesem Artikel haben wir die PHP-Funktion utf8_decode() und deren Einsatz zur Umwandlung von UTF-8-codiertem Text in ISO-8859-1-codierten Text besprochen. Wir haben erläutert, was die Funktion tut, ihre Syntax vorgestellt und Beispiele für den praktischen Einsatz gegeben. Anhand dieser Beispiele können Sie utf8_decode() einfach nutzen, um UTF-8-codierten Text in ISO-8859-1 umzuwandeln und sicherzustellen, dass Ihr Text in Ihrem System korrekt angezeigt oder verwendet wird.

Practice

Was macht die utf8_decode-Funktion in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.