首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery AJAX字符编码

jQuery AJAX字符编码
EN

Stack Overflow用户
提问于 2009-02-16 14:30:50
回答 18查看 345.4K关注 0票数 60

我目前正在编写一个法语网站。有一个日程表页面,边上的链接可以用来加载另一天的日程表。

下面是我用来做这件事的JS:

代码语言:javascript
复制
    <script type="text/javascript">
    function load(y) {
        $.get(y,function(d) {
            $("#replace").html(d);
            mod();
        });
    }
    function mod() {
        $("#dates a").click(function() {
            y = $(this).attr("href");
            load(y);
            return false;
        });
    }
    mod();
    </script>

实际的AJAX就像是一个魔力。我的问题出在对请求的响应上。

因为是法语网站,所以有很多重音字母。我使用ISO-8859-15字符集正是出于这个原因。但是,在对AJAX请求的响应中,重音变成了?,因为字符编码似乎改回了UTF-8。

我该如何避免这种情况?我已经尝试在请求的文档顶部添加一些PHP来设置字符集:

代码语言:javascript
复制
<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>

但这似乎也行不通。有什么想法吗?

另外,当您正在查看here...why时,当加载新页面时,最右侧的列是否似乎变小了,从而导致表扭曲,并且<td>中的每个<li>都换到下一行?

干杯

EN

回答 18

Stack Overflow用户

发布于 2009-02-16 15:04:47

在AJAX-call上指定内容类型解决了我在挪威站点上的问题。

代码语言:javascript
复制
$.ajax({
        data: parameters,
        type: "POST",
        url: ajax_url,
        timeout: 20000,
        contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
        dataType: 'json',
        success: callback
});

您还必须在服务器上指定字符集。

代码语言:javascript
复制
<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>
票数 67
EN

Stack Overflow用户

发布于 2010-01-25 15:15:06

代码语言:javascript
复制
$str=iconv("windows-1250","UTF-8",$str);

最终帮助我的是什么

票数 20
EN

Stack Overflow用户

发布于 2009-02-16 14:53:28

您需要将服务器设置为使用ISO-8859-15作为字符编码(添加适当的HTTP头)。在html的主体中做这件事是没有帮助的。

我能看到这条线

代码语言:javascript
复制
<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>

在你的html的源码。这不应该发生。使用Live HTTP头,我看不到适当的字符集HTTP头。在您的第一个页面和ajax服务中都使用它。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/553463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档