проблема с кодировкой акцента ajax - PullRequest
2 голосов
/ 15 декабря 2009

Исходный файл имеет:

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

Исходный скрипт ajax (jQuery):

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

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

Файл назначения:

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

echo $_POST['search_word'];

Данные отправлены:

é

Результат:

é

Все файлы:

Western (ISO Latin 1) (using TextWrangler)

Забавно: я могу вставлять записи в MySQL просто отлично с акцентами.

Ответы [ 2 ]

1 голос
/ 15 декабря 2009

Это потому, что тип возвращаемого по умолчанию вызова AJAX - UTF-8. Попробуйте

utf8_encode($output);

в вашем фрагменте Ajax. Кроме того, вы можете изменить кодировку AJAX-запроса, как описано здесь .

0 голосов
/ 15 декабря 2009

Это потому, что вы отображаете кодировку UTF-8 é (0xc3, 0xa9) как Latin-1 Таким образом, search_word был закодирован как UTF-8, когда он размещен на PHP.

Попробуйте это,

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