Các quy tắc khi bạn gặp sự cố với bộ ký tự:
-
Trong khi tạo cơ sở dữ liệu, hãy sử dụng mã hóa utf8:
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
Đảm bảo rằng tất cả các trường văn bản (varchar và text) đang sử dụng UTF-8:
CREATE TABLE _test.test ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM;
-
Khi bạn tạo kết nối, hãy thực hiện việc này trước khi bạn truy vấn / cập nhật cơ sở dữ liệu:
SET NAMES utf8;
-
Với phpMyAdmin - Chọn UTF-8 khi bạn đăng nhập.
-
đặt mã hóa trang web thành utf-8 để đảm bảo tất cả dữ liệu đăng / lấy sẽ ở dạng UTF-8 (hoặc bạn sẽ phải làm như vậy vì quá trình chuyển đổi rất khó khăn ..). Mã PHP (dòng đầu tiên trong tệp php hoặc ít nhất trước bất kỳ đầu ra nào):
header('Content-Type: text/html; charset=UTF-8');
-
Đảm bảo rằng tất cả các truy vấn của bạn được viết bằng mã hóa UTF8. Nếu sử dụng PHP:
6.1. Nếu PHP hỗ trợ mã trong UTF-8 - chỉ cần viết các tệp của bạn trong UTF-8.
6.2. Nếu php được biên dịch mà không có hỗ trợ UTF-8 - hãy chuyển đổi các chuỗi của bạn thành UTF-8 như sau:
$str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
$query = 'SELECT * FROM test WHERE name = "' . $str . '"';
Điều đó sẽ làm cho nó hoạt động.