Heim >Backend-Entwicklung >PHP-Tutorial >Wie dekodiere ich UTF-8-kodierte URLs über urldecode() hinaus in PHP?

Wie dekodiere ich UTF-8-kodierte URLs über urldecode() hinaus in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-10-17 15:08:02291Durchsuche

How to Decode UTF-8 Encoded URLs Beyond urldecode() in PHP?

URL-Dekodierung in PHP: Jenseits von urldecode()

PHPs urldecode()-Funktion ist ein wertvolles Werkzeug zum Dekodieren von URL-kodierten Zeichenfolgen. Dies kann jedoch zu kurz kommen, wenn die Zeichenfolge auch UTF-8-codiert ist.

Das Problem:

Betrachten Sie die folgende URL-codierte Zeichenfolge:

Ant%C3%B4nio+Carlos+Jobim

Der Versuch, es mit urldecode() zu dekodieren, führt zu folgender Ausgabe:

Antônio Carlos Jobim

Anstelle des erwarteten „Antônio Carlos Jobim.“

Die Lösung:

Um dieses Problem zu beheben, müssen wir auch die UTF-8-Kodierung dekodieren. Die Funktion utf8_decode() von PHP dient diesem Zweck:

echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));

Dadurch wird die richtige Zeichenfolge ausgegeben:

Antônio Carlos Jobim

Erklärung:

URL-Kodierung Dabei werden bestimmte Zeichen durch ihre hexadezimalen Gegenstücke ersetzt. Die UTF-8-Kodierung hingegen stellt Zeichen dar, die mehrere Bytes verwenden, was als Hex-Codes fehlinterpretiert werden kann. Durch die Kombination von utf8_decode() und urldecode() können wir Zeichenfolgen korrekt dekodieren, die sowohl im UTF-8- als auch im URL-Format kodiert wurden.

Das obige ist der detaillierte Inhalt vonWie dekodiere ich UTF-8-kodierte URLs über urldecode() hinaus in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn