Menyingkap Misteri Percanggahan Penyahkodan URL dalam PHP
Apabila cuba menyahkod rentetan URL menggunakan fungsi urldecode PHP, pengguna mungkin menemui hasil yang tidak dijangka . Contohnya, cuba menyahkod rentetan seperti "Antônio Carlos Jobim" mungkin menghasilkan "Antônio Carlos Jobim" dan bukannya keluaran yang dimaksudkan "Antônio Carlos Jobim."
Percanggahan itu timbul daripada fakta bahawa rentetan itu adalah bukan sahaja dikodkan dengan pengekodan URL tetapi juga dengan pengekodan UTF-8. Untuk menyahkod rentetan sedemikian dengan berkesan, PHP menyediakan fungsi utf8_decode.
Penyelesaian:
Untuk menyelesaikan isu, gunakan pendekatan berikut:
<code class="php">echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));</code>
Dengan menggabungkan urldecode dan utf8_decode, rentetan pertama kali dinyahkod menggunakan pengekodan URL, kemudian dinyahkod lagi menggunakan pengekodan UTF-8. Ini menghasilkan output yang betul: "Antônio Carlos Jobim."
Atas ialah kandungan terperinci Mengapakah penyahkodan URL dalam PHP kadangkala mengakibatkan percanggahan dan bagaimana saya boleh menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!