Bạn cần phải kiểm tra mã hóa ký tự. Về cơ bản, bạn có một chuỗi được mã hóa ở một định dạng và bạn đang sử dụng nó ở định dạng khác.
Đối với nội dung quốc tế (và có vẻ như bạn đang làm điều đó) thì tôi sẽ sử dụng UTF-8: - Trong tệp HTML của bạn thêm vào đầu (gần đầu) - Trong PHP của bạn, hãy đảm bảo bạn đang xử lý tất cả các chuỗi như UTF-8 - Nếu bạn cũng có một cơ sở dữ liệu, hãy đảm bảo cơ sở dữ liệu, các bảng và các trường được cấu hình là UTF-8 (cảnh báo: thực hiện thay đổi này có thể làm hỏng dữ liệu xuất hiện mà không cần nhập/xuất!). - Nếu bạn đang đọc các tệp mẫu có các ký tự đặc biệt, hãy đảm bảo các tệp đó là UTF-8. (Nếu không có ký tự đặc biệt, thì AscII bình thường sẽ làm)
Đó là câu trả lời đơn giản. Có rất nhiều điều để đọc về mã hóa ký tự - chỉ cần Google nó.
(giải pháp thay thế, sử dụng ASCII, nhưng chuyển đổi tất cả mọi thứ để mã ký tự web thân thiện. Nhưng đó là phức tạp hơn để có được tất cả các mã đúng, đặc biệt là nếu xử lý đầu vào người sử dụng.)