@deceze và @Shakti cảm ơn sự giúp đỡ của bạn.
+1 cho liên kết bài viết được đăng bởi cheat ( Xử lý Unicode Front to Back trong Web App ) và nó cũng đáng đọc Hiểu mã hóa
Sau khi đọc bình luận của bạn, câu trả lời và tất nhiên hai bài báo đó, cuối cùng tôi đã giải quyết được vấn đề của mình.
Tôi đã liệt kê các bước tôi đã làm cho đến nay để giải quyết vấn đề này:
- Đã thêm tiêu đề
header('Content-Type: text/html; charset=utf-8');
ở đầu tệp init.php của tôi, - Đã thay đổi BỘ NHÂN VẬT của trường bảng cơ sở dữ liệu của tôi đang lưu trữ các giá trị đó thành UTF-8,
- Đặt bộ mã kết nối MySQL thành UTF-8
mysql_set_charset('utf8', $connection_link_id);
- Đã sử dụng hàm htmlentities () để chuyển đổi các ký tự
$meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');
Bây giờ vấn đề dường như đã được giải quyết, NHƯNG tôi vẫn phải làm điều sau để giải quyết vấn đề này một cách ĐẦY ĐỦ.
- Lấy bộ ký tự được mã hóa từ nguồn
$source_charset
. - Thay đổi mã hóa của chuỗi thành UTF-8 nếu nó không có trong cùng một mã hóa. Đối với điều này, hàm PHP khả dụng duy nhất là
iconv()
. Ví dụ:iconv($source_charset, "UTF-8", $meta_title_raw);
Để nhận $source_charset
Tôi có lẽ phải sử dụng một số thủ thuật hoặc kiểm tra nhiều lần. Như kiểm tra tiêu đề và thẻ meta, v.v. Tôi đã tìm thấy câu trả lời hay tại Phát hiện mã hóa
Hãy cho tôi biết nếu có bất kỳ cải tiến nào hoặc bất kỳ lỗi nào trong các bước của tôi ở trên.