Domanda

Il file sorgente deve:

header('Content-type: text/html; charset=iso8859-1');

Fonte Ajax (jQuery) script è:

$(document).ready(function() {
$.ajaxSetup({
    cache: false
});

$("#searchfield").keyup(function(){
    $("#insert_search")
        .load('ajax/searchobjects.php', {search_word:   $("#searchfield").val()}, function(){
        });
    });
});

File di destinazione:

header('Content-type: text/html; charset=iso8859-1');

echo $_POST['search_word'];

I dati inviati:

é

Il risultato è:

é

Tutti i file:

Western (ISO Latin 1) (using TextWrangler)

La cosa divertente:. Posso inserire i record in MySQL bene con accenti

È stato utile?

Soluzione

Questo è dovuto al fatto che si sta visualizzando codifica UTF-8 di E (0xc3, 0xa9) come Latin-1. Così il parola_da_cercare è stato codificato come UTF-8, quando ha pubblicato PHP.

Prova questo,

$.ajaxSetup({
        scriptCharset: "iso-8859-1",
        cache: false
});

Altri suggerimenti

Questo perché il tipo di ritorno di default di una chiamata AJAX è UTF-8. Prova

utf8_encode($output);

nel tuo snippet Ajax. In alternativa, è possibile modificare la codifica della richiesta AJAX come descritto qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top