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!