Dalam pembangunan web, kami selalunya perlu memproses data yang diserahkan melalui borang, tetapi apabila menggunakan PHP untuk memproses penyerahan borang, kami akan menghadapi masalah aksara Cina yang kacau. Ini kerana dalam protokol HTTP, aksara yang dihantar adalah dikodkan URL, dan secara lalai, data yang diserahkan oleh borang dihantar dalam format pengekodan ISO-8859-1, yang tidak serasi dengan set aksara Cina, jadi ia Terdapat akan menjadi masalah dengan aksara Cina yang kacau.
Untuk menyelesaikan masalah ini, kami perlu memproses data borang dalam kod PHP. Artikel ini akan memperkenalkan beberapa kaedah untuk menangani masalah aksara Cina yang kacau dalam penyerahan borang.
1. Tetapkan format pengekodan borang
Apabila menulis borang HTML, kita boleh menentukan format pengekodan borang dengan menetapkan atribut enctype borang. Terdapat dua format pengekodan yang paling biasa: application/x-www-form-urlencoded dan multipart/form-data. Antaranya, application/x-www-form-urlencoded ialah format pengekodan lalai, yang mengekod data ke dalam aksara ASCII yang boleh dibaca dan sesuai untuk kebanyakan situasi. Multipart/form-data sesuai untuk memuat naik fail dan situasi lain. Selain itu, terdapat format teks/pengekodan biasa, yang tidak melakukan sebarang pemprosesan pengekodan pada data dan sesuai untuk data teks biasa.
Kami boleh menggunakan kod berikut untuk menetapkan format pengekodan borang:
<form action="process.php" method="post" enctype="application/x-www-form-urlencoded"> <input type="text" name="username"> <input type="submit" value="Submit"> </form>
2. Tetapkan format pengekodan halaman PHP
Dalam kod PHP, kami perlu menggunakan fungsi pengepala untuk menetapkan format pengekodan halaman, jika tidak, aksara bercelaru mungkin muncul semasa mengeluarkan kod HTML. Kita boleh menggunakan kod berikut untuk menetapkan format pengekodan halaman kepada UTF-8:
header("Content-type:text/html;charset=utf-8");
3 Gunakan fungsi iconv untuk menukar pengekodan
Jika data yang dihantar oleh borang ialah. masih bercelaru, kita boleh menggunakan Fungsi iconv menukar data ke dalam set aksara yang ditentukan.
$str = $_POST["username"]; $str = iconv("gb2312", "utf-8//IGNORE", $str); //将gb2312编码的字符串转换为utf-8
Antaranya, gb2312 ialah set aksara Cina biasa dan utf-8 ialah set aksara universal. Kami juga boleh menggunakan set aksara lain untuk penukaran.
4. Gunakan fungsi mb_convert_encoding untuk menukar pengekodan
Fungsi mb_convert_encoding juga boleh menukar rentetan daripada satu set aksara kepada yang lain.
$str = $_POST["username"]; $str = mb_convert_encoding($str, "utf-8", "gb2312"); //将gb2312编码的字符串转换为utf-8
5. Tetapkan fail PHP.ini
Akhir sekali, kami juga boleh menetapkan set aksara lalai dalam fail konfigurasi PHP php.ini.
default_charset = "utf-8"
Dengan cara ini, tidak perlu menetapkan format pengekodan halaman dalam kod PHP.
Ringkasan
Untuk menangani masalah aksara Cina yang bercelaru dalam penyerahan borang, kita boleh mengambil langkah berikut:
Kaedah di atas hanyalah kaedah pemprosesan biasa, malah banyak lagi kaedah pemprosesan yang lain. Semasa proses pembangunan, kita perlu memilih kaedah yang paling sesuai untuk menyelesaikan masalah bercelaru Cina mengikut situasi tertentu.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah aksara Cina bercelaru yang dihantar dalam bentuk php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!