Tôi sẽ trả lời ở đây vì quá dài cho một bình luận.
Bạn không cần thay đổi mã hóa của mình, bạn nên kiểm tra mã hóa của bạn. Hãy nhớ rằng mã hóa có thể được thay đổi ở nhiều nơi khác nhau:
- Trong cơ sở dữ liệu của bạn có hàm bộ ký tự
- Trong cấu hình apache của bạn với AddDefaultCharset
- Với php chức năng tiêu đề
- Trong html của bạn có
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
thẻ
Bất kỳ lý do nào trong số này có thể dẫn đến mã hóa sai hiển thị trong trình duyệt web. Và nếu bạn không chỉ định nó bằng một hoặc nhiều phương pháp trước đó, thì lớp tương ứng sẽ sử dụng mặc định đã định cấu hình của nó.
Trong trường hợp của bạn vì văn bản đến từ cơ sở dữ liệu và vì thường trong WAMP / XAAMP / MAMP MySQL sử dụng mã hóa mặc định kỳ lạ, tôi sẽ kiểm tra điểm một. Cố gắng thực thi SET NAMES UTF-8
(hoặc bất kỳ kiểu mã hóa nào bạn sử dụng) truy vấn trước truy xuất dữ liệu, chỉ sau chức năng kết nối db của bạn.