Penyelesaian kepada parameter bercelaru php echo get: 1. Gunakan "iconv("gb2312","utf-8",$str);" untuk menukar pengekodan; fungsi.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.4, komputer DELL G3
Apakah yang perlu saya lakukan jika parameter php echo get bercelaru?
Sebab dan penyelesaian untuk parameter Cina bercelaru yang diterima oleh PHP dalam GET
Beberapa hari lalu, saya menggunakan sphinx untuk menulis fungsi carian dan menguji kesan carian dengan penyemak imbas, tetapi saya tidak menemuinya. Saya menggunakan gema untuk mengeluarkan kata kunci yang diperolehi oleh $_GET dan melihat bahawa pengekodan halaman bercelaru dalam UTF-8, tetapi ia adalah perkara biasa apabila ia ditukar kepada gb2312. Walau bagaimanapun, sphinx hanya menyokong carian aksara Cina UTF-8, jadi saya terpaksa menyelesaikan masalah menerima parameter Cina.
Saya melayari google dalam talian dan menemui artikel yang dipanggil "Kajian mendalam tentang parameter Cina bercelaru yang diterima oleh PHP dalam GET". bar alamat Parameter biasanya diterima dalam pengekodan gbk dalam pelayar dengan antara muka Cina. Dalam situasi seperti ini, kita perlu menggunakan fungsi transkoding terbina dalam PHP untuk menangani masalah pengekodan:
Pilihan 1:
$str = iconv("gb2312","utf-8",$str);
Pilihan 2:
mb_convert_encoding($str, "utf-8", "gb2312");
Jika parameter Cina diperoleh menggunakan kotak input teks di bawah pengekodan halaman UTF-8, halaman akan lalai kepada pengekodan semasa, jadi dalam kes ini tidak perlu menggunakan kaedah transcoding di atas.
Jika anda ingin menjana pautan dengan nilai parameter Cina dalam halaman, anda perlu mengekod aksara Cina dengan urlencode() di bawah kod pengekodan utf-8 dan kemudian menjana pautan.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika parameter php echo get bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!