Dalam PHP, jika anda menggunakan aksara Cina untuk menyimpan ke pangkalan data, aksara bercelaru mungkin muncul. Ini kerana pangkalan data dan pengekodan halaman web tidak konsisten, menyebabkan data disimpan dengan tidak betul. Berikut adalah beberapa penyelesaian.
Sahkan dahulu sama ada pengekodan pangkalan data ialah UTF-8 (atau pengekodan lain yang menyokong bahasa Cina). Jika tidak, anda boleh menetapkan pengekodan dalam pangkalan data kepada UTF-8.
Jika anda menggunakan pangkalan data MySQL, anda perlu menentukan pengekodan semasa membuat pangkalan data dan jadual data:
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE tablename ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, age INT(3) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Kedua, tetapkan pengekodan kepada UTF-8 dalam skrip PHP:
header('Content-Type: text/html; charset=utf-8');
Anda juga boleh menetapkannya dalam fail konfigurasi PHP php.ini:
default_charset = "utf-8"
Apabila menyambung ke pangkalan data, anda juga perlu menetapkan pengekodan kepada UTF-8. Jika anda menggunakan PDO untuk menyambung ke pangkalan data, anda boleh menulis seperti ini:
$dsn = "mysql:host=localhost;dbname=dbname;charset=utf8mb4"; $dbh = new PDO($dsn, $user, $password);
Jika anda menggunakan MySQLi untuk menyambung ke pangkalan data, anda boleh menulis seperti ini:
$mysqli = new mysqli("localhost", "user", "password", "dbname"); mysqli_set_charset($mysqli, "utf8mb4");
Jika tiada kaedah di atas menyelesaikan masalah, mungkin pengekodan rentetan yang disimpan ke pangkalan data tidak konsisten dengan pengekodan pangkalan data dan penukaran pengekodan diperlukan. Penukaran boleh dilakukan menggunakan fungsi iconv PHP atau fungsi mb_convert_encoding.
$str = "你好"; $str = iconv('gbk', 'utf-8', $str); //或 $str = mb_convert_encoding($str, 'utf-8', 'gbk');
Ringkasan
Apabila menyimpan aksara Cina ke pangkalan data dalam PHP, pastikan pengekodan pangkalan data dan halaman web adalah konsisten, dan tetapkan pengekodan kepada UTF-8 dalam pangkalan data sambungan dan skrip PHP. Jika aksara bercelaru muncul, cuba penukaran pengekodan. Harap kaedah ini dapat membantu anda menyelesaikan masalah tersebut.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika pangkalan data simpan php Cina bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!