Tôi muốn chuẩn hóa UTF8 trên trang web của chúng tôi. Tất cả cơ sở dữ liệu và nội dung trên internet của chúng tôi đều ở dạng UTF8. Tất cả các máy chủ web của chúng tôi đang gửi tiêu đề HTTP charset=utf-8
. Tuy nhiên tôi đã phát hiện ra rằng bằng cách thay đổi mã hóa trong Firefox của tôi (View -> Character Encoding) thành một cái gì đó khác, tôi có thể nhập một ký tự Latin-9 vào một form và PHP chỉ xử lý chúng như là UTF8 không đúng định dạng.Tôi có thể buộc trình duyệt web gửi văn bản biểu mẫu dưới dạng UTF8 không?
Tôi phải lo lắng về điều đó bao nhiêu? Trình duyệt web của người dùng có thể ghi đè tiêu đề bộ ký tự UTF8 và gửi không phải UTF8 không?
Cập nhật: Một số người đã đề xuất accept-charset
trên các biểu mẫu riêng lẻ. Tuy nhiên tôi không muốn thay đổi mọi mẫu web. Giả sử tôi có thể kiểm soát tiêu đề kiểu nội dung HTTP và được đặt thành UTF8, tôi có lo lắng gì không?
"Tất cả cơ sở dữ liệu và nội dung trên internet của chúng tôi" - tất cả nội dung trên internet của bạn đều thuộc về chúng tôi. –
Theo câu trả lời được chấp nhận cho [câu hỏi này] (http://stackoverflow.com/questions/3719974/is-there-any-benefit-to-adding-accept-charset-utf-8-to-html-forms- if-the-page), 'accept-charset' sẽ giải quyết vấn đề cụ thể bạn đã phát hiện: tức là nếu người dùng yêu cầu trình duyệt của họ diễn giải trang là không phải UTF-8,' accept-charset' sẽ làm cho trình duyệt gửi biểu mẫu nội dung dưới dạng UTF-8 mặc dù vậy.Cho dù bảo vệ chống lại tình hình cụ thể đó là giá trị thêm thuộc tính cho tất cả các hình thức của bạn, tốt, đó là cuộc gọi phán xét của bạn. –
đảm bảo trang của bạn thực sự là utf-8; trong trình gỡ lỗi trình duyệt, hãy tìm tiêu đề Kiểu nội dung được gửi. Ngoài ra, trong giao diện điều khiển JS, đánh giá document.charset; nên trả về một số chính tả của utf8. 'windows-1252' có thể có nghĩa là trình duyệt không nhận dạng được mã hóa được gửi. – OsamaBinLogin