Sebab parameter PHP bercelaru adalah kerana pengekodan tidak konsisten Penyelesaiannya adalah untuk mengubah suai untuk menggunakan pengekodan uft-8 seperti "mb_detect_encoding($typeName,'CP936,UTF-. 8')".
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3.
Mengapa parameter php bercelaru?
Penyelesaian kepada parameter php yang bercelaru
Apabila projek tapak web menggunakan gb2312 sebagai pengekodan projek, disebabkan penyemak imbas yang berbeza Pengekodan aksara Cina mungkin berbeza Sesetengah akan mengekodkan bahasa Cina ke dalam pengekodan tapak web, dan sesetengahnya akan mengekodkan bahasa Cina ke dalam utf-8 Ralat bercelaru akan berlaku apabila menerima parameter di latar belakang. Penyelesaian yang lebih baik ialah mengenal pasti aksara Cina dalam parameter dan menukarnya jika ia bukan gb2312.
$typeName = $_GET['typeName']; $encode = mb_detect_encoding($typeName,'CP936,UTF-8') ; //如果是CP936,就是gbk编码,如果是UTF-8, 就是utf-8编码 if ($encode =='UTF-8') { //再调用转换成utf-8编码的函数,最终确保是utf-8 $typeName = iconv("utf-8","gb2312",$typeName); }
Untuk isu pengekodan tapak web dan pengembangan masa hadapan, disyorkan untuk menggunakan pengekodan uft-8
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Mengapa parameter yang diluluskan dalam php bercelaru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!