猿问

jQuery AJAX字符编码

我目前正在编码一个法语网站。有一个时间表页面,可以使用侧面的链接加载另一天的时间表。


这是我用来执行此操作的JS:


    <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来设置字符集:


<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>

但这似乎也不起作用。有什么想法吗?


此外,虽然任何你正在寻找在这里...为什么最右边的列似乎当加载一个新的页面变得更小,从而导致表歪曲和每个<li>内<td>换到下一行?


干杯


largeQ
浏览 923回答 3
3回答

Cats萌萌

UTF-8应该可以处理所有的重音符号和外国字符-为什么不在您的数据源上使用它?编辑[ 归档测试文件的副本。]与您的数据一切都应该首先是UTF-8。我将文件加载到notepad ++中,转换为utf-8,然后手动将字符更改为重音符号。一旦完成,一切都会像魅力一样运作。顺便说一句,除非您的服务器定义为php-process .html文件,否则使用ajax加载的文件不会获得iso字符集。如果您坚持使用iso字符集,请请求一个php文件而不是一个html文件,并在标头(而不是文件本身)中定义字符集。

慕哥9229398

在AJAX调用中指定内容类型可以解决我在挪威站点上的问题。$.ajax({&nbsp; &nbsp; &nbsp; &nbsp; data: parameters,&nbsp; &nbsp; &nbsp; &nbsp; type: "POST",&nbsp; &nbsp; &nbsp; &nbsp; url: ajax_url,&nbsp; &nbsp; &nbsp; &nbsp; timeout: 20000,&nbsp; &nbsp; &nbsp; &nbsp; contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",&nbsp; &nbsp; &nbsp; &nbsp; dataType: 'json',&nbsp; &nbsp; &nbsp; &nbsp; success: callback});您还必须在服务器上指定字符集。<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>
随时随地看视频慕课网APP

相关分类

JQuery
我要回答