accento problema codifica ajax
-
19-09-2019 - |
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
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