Tôi gặp khó khăn khi hiểu cách đặt bộ ký tự khi loại nội dung không phải là văn bản/html, văn bản/đồng bằng hoặc text/xml, thay vào đó là kiểu nội dung ứng dụng/x-www-form-urlencoded.ajax, setRequestHeader(), Loại nội dung, ứng dụng/x-www-form-urlencoded và charset
Với này (giản thể) mã javascript:
var xhr = new XMLHttpRequest();
Nếu tôi không rõ ràng thiết lập mã hóa,
xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
firebug nói với tôi rằng kiểu nội dung là "application/x -www-form-urlencoded; charset = UTF-8. "
Nếu tôi đặt charset ISO-8859-1 ví dụ,
xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
firebug vẫn nói với tôi "application/x-www-form-urlencoded; charset = UTF-8 . "
Nếu tôi cố gắng một cái gì đó giống như
xhr.setRequestHeader('Content-Type', 'text/plain; charset=ISO-8859-1');
sau đó nó tôn trọng charset.
Trong tất cả các trường hợp send() phương pháp đi như thế này:
xhr.send('id=9&name=Yoda');
Tại sao nó không tôn vinh những charset tôi chỉ định nếu Content-Type là x-www-form-urlencoded?
LƯU Ý: Tôi đang sử dụng ISO-8859-1 như một ví dụ. Mục tiêu của tôi là để hiểu những gì đang xảy ra.