Dalam pembangunan tapak web, selalunya perlu untuk menghantar maklumat melalui parameter URL, dan mendapatkan parameter URL dalam PHP juga merupakan operasi yang sangat biasa. Walau bagaimanapun, kadangkala kami menghadapi masalah yang sangat menjengkelkan, iaitu, parameter URL yang diperolehi bercelaru. Artikel ini akan menerangkan sebab dan penyelesaian untuk parameter URL yang bercelaru.
Kod kacau parameter URL yang dipanggil bermakna apabila kami memperoleh parameter URL, ralat penghuraian berlaku, mengakibatkan beberapa aksara pelik. Sebagai contoh, parameter Cina "Zhang San" dihantar dalam URL, tetapi apa yang diperoleh dalam PHP ialah "涔?涓 kod jenis ini?"
Terdapat banyak sebab mengapa parameter URL bercelaru Berikut adalah beberapa situasi biasa:
Bila. lulus parameter dalam URL, parameter dikodkan sebelum dihantar dalam URL. Kaedah pengekodan biasa termasuk UTF-8, GBK, GB2312, BIG-5, dsb. Kaedah pengekodan yang berbeza mewakili set aksara yang berbeza. Jika kaedah pengekodan pengirim dan penerima tidak konsisten, penukaran pengekodan mungkin gagal, mengakibatkan aksara bercelaru.
Semasa proses menghantar parameter dalam URL, parameter mungkin dinyahkodkan atas pelbagai sebab, mengakibatkan pengekodan kedua. Contohnya, jika rentetan yang pada asalnya dikodkan dalam UTF-8 tersilap dinyahkodkan ke dalam pengekodan GBK, dan kemudian dihantar dalam pengekodan UTF-8 sekali lagi, aksara bercelaru akan muncul.
Sesetengah versi awal penyemak imbas tidak menyokong pengekodan bahasa Cina Jika parameter bahasa Cina dihantar melalui URL apabila diakses dalam penyemak imbas sedemikian halaman, maka aksara bercelaru mungkin muncul.
Sebelum mendapatkan parameter URL dalam PHP, anda perlu menyemak dahulu sama ada kaedah pengekodan itu konsisten. Pendekatan terbaik ialah menyatukan kaedah pengekodan kepada UTF-8 apabila menghantar parameter Ini adalah kaedah pengekodan universal merentas platform yang juga mesra bahasa Cina. Di sisi penerima, jika UTF-8 perlu ditukar kepada pengekodan lain, ini juga harus dijelaskan.
Sebelum mendapatkan parameter URL dalam PHP, parameter yang dihantar dalam URL hendaklah dinyahkod sekali untuk mengelakkan pengekodan kedua. Penyahkodan boleh menggunakan fungsi urldecode
PHP sendiri.
Kini, kebanyakan penyemak imbas sudah menyokong pengekodan bahasa Cina dengan sempurna Jika versi penyemak imbas anda terlalu rendah, adalah disyorkan untuk meningkatkan kepada versi terkini. .
Kadangkala, walaupun kaedah pengekodan konsisten, aksara bercelaru tetap akan muncul. Pada masa ini, anda boleh mempertimbangkan untuk menambah parameter pada URL untuk memaksa kaedah pengekodan ditentukan. Sebagai contoh, anda boleh menambah parameter charset
pada URL untuk menentukan kaedah pengekodan, seperti: http://example.com/index.php?name=张三&charset=utf-8
.
Masalah parameter URL yang bercelaru sebenarnya adalah situasi yang agak menyusahkan. Walau bagaimanapun, jika anda menguasai beberapa penyelesaian yang disasarkan, anda boleh mengelakkan masalah ini dengan berkesan dan memastikan operasi normal kod program. Saya harap ia akan membantu semua orang yang menghadapi situasi ini dalam pengaturcaraan sebenar.
Atas ialah kandungan terperinci Terangkan sebab dan penyelesaian untuk parameter URL PHP yang bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!