Non riesco a capire come impostare il set di caratteri quando il tipo di contenuto non è text/html, text/plain, o text/xml, ma è invece il tipo di contenuto application/x-www-form-urlencoded.ajax, setRequestHeader(), Content-Type, application/x-www-form-urlencoded e charset
Dato questo (semplificato) codice javascript:
var xhr = new XMLHttpRequest();
Se Non impostare in modo esplicito la codifica,
xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
Firebug mi dice che il tipo di contenuto è "application/x -www-form-urlencoded; charset = UTF-8. "
Se ho impostato il set di caratteri ISO-8859-1 per esempio,
xhr.open('POST', 'serv.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
Firebug ancora mi dice "application/x-www-form-urlencoded; charset = UTF-8 . "
Se provo qualcosa di simile
xhr.setRequestHeader('Content-Type', 'text/plain; charset=ISO-8859-1');
allora rispetta il set di caratteri.
In tutti i casi il metodo() send va come questa:
xhr.send('id=9&name=Yoda');
Perché non onorare il set di caratteri a specificare se il Content-Type è x-www-form-urlencoded?
NOTA: sto usando ISO-8859-1 solo come esempio. Il mio obiettivo è capire cosa sta succedendo.