Tôi nhận thấy rằng bạn đang chạy truy vấn này ... mysql_query('SET CHARACTER SET utf8');
Hãy thử thay đổi điều đó thành điều này ...
mysql_query("SET NAMES 'utf8'");
Điều đó sẽ đảm bảo rằng kết nối là UTF-8.
Cũng thử xem qua danh sách các mục trong bài viết này ... http:/ /blog.loftdigital.com/blog/php-utf-8-cheatsheet
Phần này liệt kê các bước cần thiết để đảm bảo rằng bạn đang sử dụng UTF-8 từ trước ra sau trong trang web / ứng dụng của mình nhưng tóm lại:
- Kiểm tra xem bạn có phần mở rộng mbstring của PHP và bạn có
mb_internal_encoding('UTF-8');
đặt trong tập lệnh của bạn. - Đảm bảo rằng bạn đang chạy truy vấn MySQL này sau khi kết nối với cơ sở dữ liệu của bạn
mysql_query("SET NAMES 'utf8'");
đảm bảo kết nối là UTF-8. - Đặt tiêu đề HTTP cho đầu ra của bạn ...
header('Content-type: text/html; charset=UTF-8');
. Điều này dường như không cần thiết nếu bạn đã đặtmb_internal_encoding()
ở trên nhưng hữu ích để gỡ lỗi - Đảm bảo mã hoá đầu ra của trang HTML của bạn được đặt ...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />