Rumah >pembangunan bahagian belakang >masalah PHP >Mengapa parameter yang diluluskan dalam php bercelaru?

Mengapa parameter yang diluluskan dalam php bercelaru?

藏色散人
藏色散人asal
2021-12-22 10:23:142013semak imbas

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')".

Mengapa parameter yang diluluskan dalam php bercelaru?

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!

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