Heim >Backend-Entwicklung >PHP-Tutorial >Wie dekodiere ich UTF-8-kodierte URLs über urldecode() hinaus in PHP?
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!