Question

fichier source:

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

Script ajax (jQuery) Source est:

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

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

fichier de destination:

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

echo $_POST['search_word'];

Les données envoyées:

é

Le résultat est:

é

Tous les fichiers:

Western (ISO Latin 1) (using TextWrangler)

Le plus drôle. Je peux insérer des enregistrements dans MySQL très bien avec des accents

Était-ce utile?

La solution

Ceci est parce que vous affichiez encodage UTF-8 de é (0xC3, 0xA9) Latin-1. Ainsi, le search_word a été codé en UTF-8 quand il a écrit à PHP.

Essayez ceci,

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

Autres conseils

C'est parce que le type d'un appel AJAX de retour par défaut est UTF-8. Essayez

utf8_encode($output);

dans votre extrait ajax. Vous pouvez également modifier le codage de la requête AJAX comme décrit .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top