PHP ialah bahasa skrip sebelah pelayan yang popular digunakan untuk membina halaman web dan aplikasi dinamik. Adalah sangat biasa untuk memproses data set aksara UTF-8 dalam PHP Walau bagaimanapun, kadangkala anda menghadapi masalah aksara bercelaru selepas data set aksara UTF-8 diserahkan. Masalah ini adalah sakit kepala, jadi kita perlu tahu beberapa penyelesaian.
Apabila memproses data dalam set aksara UTF-8, anda perlu terlebih dahulu memastikan set aksara PHP ditetapkan dengan betul kepada UTF-8. Dalam PHP, anda boleh menggunakan fungsi header() untuk menetapkan set aksara, seperti yang ditunjukkan di bawah:
header('Content-Type:text/html;charset=utf-8');
Apabila menggunakan kaedah ini, anda perlu menetapkan set aksara UTF-8 sebagai sebahagian daripada jenis dokumen, jika tidak, ia akan menyebabkan masalah kod Garbled.
Anda boleh menetapkan set aksara lalai PHP dalam fail PHP.ini. Dalam PHP.ini tetapan berikut boleh ditemui:
default_charset = "utf-8"
Secara lalai nilainya hendaklah utf-8, tetapi jika nilai ditetapkan kepada set aksara yang berbeza, anda perlu menukarnya kembali kepada utf-8 .
Fungsi mb_convert_encoding() ialah fungsi terbina dalam PHP, digunakan untuk menukar format pengekodan rentetan. Anda boleh menggunakan fungsi ini untuk menukar data dalam set aksara bukan UTF-8 kepada data dalam set aksara UTF-8. Seperti yang ditunjukkan di bawah:
$utf8_string = mb_convert_encoding($string, 'UTF-8', '原编码格式');
Antaranya, $string ialah rentetan asal, 'format pengekodan asal' ialah format pengekodan rentetan asal dan $utf8_string ialah rentetan yang ditukar.
Fungsi iconv() juga merupakan fungsi terbina dalam dalam PHP, digunakan untuk penukaran pengekodan rentetan. Ia serupa dengan fungsi mb_convert_encoding(), tetapi menyediakan lebih banyak pilihan untuk mengawal penukaran rentetan. Seperti yang ditunjukkan di bawah:
$utf8_string = iconv('原编码格式', 'UTF-8', $string);
Antaranya, $string ialah rentetan asal, 'format pengekodan asal' ialah format pengekodan rentetan asal dan $utf8_string ialah rentetan yang ditukar.
Apabila borang diserahkan kepada skrip PHP, anda perlu memastikan bahawa format pengekodan dalam borang HTML ditetapkan dengan betul kepada UTF-8. Berikut ialah contoh:
<form method="post" action="submit.php" accept-charset="utf-8"> <input type="text" name="name"> <input type="submit" value="提交"> </form>
Di sini, kami menggunakan atribut accept-charset untuk menyatakan bahawa format pengekodan borang ialah UTF-8.
Jika data disimpan dalam pangkalan data MySQL, maka anda perlu memastikan set aksara yang digunakan oleh jadual dan medan dalam pangkalan data ialah UTF-8 . Anda boleh menggunakan pernyataan berikut untuk menetapkan set aksara jadual dan medan:
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8; ALTER TABLE 表名 CHANGE 字段名 字段名 VARCHAR(200) CHARACTER SET utf8;
Antaranya, 'nama jadual' ialah nama jadual yang perlu diubah suai, dan 'nama medan' ialah nama bidang yang perlu diubah suai.
Ringkasan
Di atas adalah beberapa kaedah untuk menyelesaikan masalah aksara bercelaru selepas PHP menyerahkan UTF-8. Apabila berurusan dengan data set aksara UTF-8, adalah penting untuk memastikan set aksara PHP, borang HTML dan pangkalan data MySQL semuanya ditetapkan dengan betul kepada UTF-8. Pada masa yang sama, dalam skrip PHP, anda boleh menggunakan fungsi seperti mb_convert_encoding() dan iconv() untuk menukar data dalam set aksara bukan UTF-8 kepada data dalam set aksara UTF-8.
Atas ialah kandungan terperinci Aksara bercelaru selepas php menyerahkan ut8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!