Jquery ignora la codifica ISO-8859-1

Ho un sito web che apperently rimuove la corretta codifica ISO-8859-1) da una stringa e la invia sbagliato.

Ho questo tipo di codifica specificato nel mio HTML

<meta charset="ISO-8859-1">

Io carico il mio javascript tramite

<script type="text/javascript" charset="ISO-8859-1" src="...

Mi inviare Informazioni via Ajax di JQuery Richiesta come questa (con il tedesco carattere speciale ‘ö’ e ‘ä’):

$.ajax({
    url: '..',
    type: 'POST',
    contentType: 'application/xml;charset=ISO-8859-1',
    data: xmlRequest.html(),...

Questo si traduce in una richiesta e chrome developer tools vedo questo Header di Richiesta:

..
Content-Type: application/xml;charset=UTF-8
..

Cosa è successo?

Di corso in cui i caratteri sono codificati sbagliato (“ö” invece di “ö”) il server mi può capire e ottengo un errore.

  • devi impostare il server web di intestazione.. non Si può fare con javascript. È serverside funzione.
InformationsquelleAutor Spike2050 | 2012-01-24

 

2 Replies
  1. 29

    Perché ho avuto lo stesso problema, provvederemo a fornire una soluzione che ha funzionato per me. Sfondo: Microsoft Excel è troppo stupido per esportare un File CSV nel charset UTF-8:

    $.ajax({
        url: '...',
        contentType: 'Content-type: text/plain; charset=iso-8859-1',
        //This is the imporant part!!!
        beforeSend: function(jqXHR) {
            jqXHR.overrideMimeType('text/html;charset=iso-8859-1');
        }
    });
    • Grazie per questo distacco!
    • Strano ma ha funzionato 🙂
    • Come si fa a fare questo senza jquery, direttamente con un XMLHttpRequest()?
    • EROE!!!!, grazie mille! che ha funzionato per me
    • Grazie per questo post, funziona perfetto
    • Questo vuol inviare la richiesta anche? Miniera di non “postare” dopo l’aggiunta di questo 🙁
    • Sì, è necessario. Sei sicuro che il codice viene eseguito anche?
    • La sua non funziona per me. Vorrei inviare alcuni dati ad un’altra pagina tramite POST, ma è seens come il POST che le variabili non vengono inviati

  2. 6

    Secondo il jQuery.ajax() contentType documentazione:

    Sempre i dati vengono trasmessi al server usando UTF-8; si deve decodificare questo in modo appropriato sul lato server.”

    • È questo un Jquery-Cosa o Ajax in generale?
    • Secondo questa stessa pagina di documentazione, “POST sempre i dati vengono trasmessi al server usando UTF-8, per il W3C XMLHTTPRequest standard.”

Lascia un commento