Như những người khác đã đề cập, bạn cần chuyển đổi sang UTF8 từ đầu đến cuối nếu bạn muốn hỗ trợ các ký tự "đặc biệt". Điều này có nghĩa là trang web của bạn, PHP, kết nối mysql và bảng mysql. Trang web khá đơn giản, chỉ cần sử dụng thẻ meta cho UTF8. Tốt nhất là tiêu đề của bạn cũng có nội dung UTF8.
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Đặt PHP của bạn để sử dụng UTF8. Mọi thứ có thể sẽ hoạt động dù sao, nhưng đó là một biện pháp tốt để làm điều này:
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
Đối với mysql, bạn muốn chuyển đổi bảng của mình thành UTF8, không cần xuất / nhập.
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8
Bạn có thể và nên cấu hình mysql thành utf8 mặc định. Nhưng bạn cũng có thể chạy truy vấn:
SET NAMES UTF8
là truy vấn đầu tiên sau khi thiết lập kết nối và điều đó sẽ "chuyển đổi" kết nối cơ sở dữ liệu của bạn thành UTF8.
Điều đó sẽ giải quyết tất cả các vấn đề hiển thị ký tự của bạn.