【问题标题】:accent ajax encoding issue口音ajax编码问题
【发布时间】:2009-12-14 23:00:43
【问题描述】:

源文件有:

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 中插入记录。

【问题讨论】:

    标签: jquery ajax encoding character-encoding diacritics


    【解决方案1】:

    这是因为 AJAX 调用的默认返回类型是 UTF-8。试试

    utf8_encode($output);
    

    在你的 ajax sn-p.或者,您可以更改 AJAX 请求的编码,如 here 所述。

    【讨论】:

      【解决方案2】:

      这是因为您将 é (0xc3, 0xa9) 的 UTF-8 编码显示为 Latin-1。因此,search_word 在发布到 PHP 时被编码为 UTF-8。

      试试这个,

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

      【讨论】:

        猜你喜欢
        • 2012-07-06
        • 2013-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多