Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyahkod URL Berkod UTF-8 Di luar urldecode() dalam PHP?

Bagaimana untuk Menyahkod URL Berkod UTF-8 Di luar urldecode() dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-10-17 15:08:02303semak imbas

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

Penyahkodan URL dalam PHP: Di luar urldecode()

Fungsi urldecode() PHP ialah alat yang berharga untuk menyahkod rentetan yang dikodkan URL. Walau bagaimanapun, ia boleh gagal apabila rentetan juga dikodkan UTF-8.

Masalahnya:

Pertimbangkan rentetan yang dikodkan URL berikut:

Ant%C3%B4nio+Carlos+Jobim

Percubaan untuk menyahkodnya menggunakan urldecode() menghasilkan output berikut:

Antônio Carlos Jobim

Daripada "Antônio Carlos Jobim" yang dijangkakan.

Penyelesaian:

Untuk menyelesaikan isu ini, kami mesti menyahkod pengekodan UTF-8 juga. Fungsi utf8_decode() PHP berfungsi untuk tujuan ini:

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

Ini akan mengeluarkan rentetan yang betul:

Antônio Carlos Jobim

Penjelasan:

Pengekodan URL melibatkan menggantikan aksara tertentu dengan rakan heksadesimalnya. Pengekodan UTF-8, sebaliknya, mewakili aksara menggunakan berbilang bait, yang boleh disalahtafsirkan sebagai kod hex. Dengan menggabungkan utf8_decode() dan urldecode(), kami boleh menyahkod rentetan yang telah dikodkan dengan betul dalam kedua-dua format UTF-8 dan URL.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod URL Berkod UTF-8 Di luar urldecode() dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn