2

ソース ファイルは次のとおりです。

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 にレコードをアクセント付きで問題なく挿入できます。

4

2 に答える 2

1

これは、AJAX 呼び出しのデフォルトの戻り値の型が UTF-8 であるためです。試す

utf8_encode($output);

あなたのajaxスニペットで。または、ここで説明されているように、AJAX 要求のエンコーディングを変更することもできます。

于 2009-12-14T23:02:19.967 に答える
0

これは、é (0xc3, 0xa9) の UTF-8 エンコードを Latin-1 として表示しているためです。そのため、search_word は、PHP に投稿されたときに UTF-8 としてエンコードされました。

これを試して、

$.ajaxSetup({
        scriptCharset: "iso-8859-1",
        cache: false
});
于 2009-12-15T15:28:29.573 に答える