我目前正在编写一个法语网站。有一个日程表页面,边上的链接可以用来加载另一天的日程表。
下面是我用来做这件事的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'); ?>
但这似乎也行不通。有什么想法吗?
另外,当您正在查看here...why时,当加载新页面时,最右侧的列是否似乎变小了,从而导致表扭曲,并且<td>
中的每个<li>
都换到下一行?
干杯
发布于 2009-02-16 15:04:47
在AJAX-call上指定内容类型解决了我在挪威站点上的问题。
$.ajax({
data: parameters,
type: "POST",
url: ajax_url,
timeout: 20000,
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
dataType: 'json',
success: callback
});
您还必须在服务器上指定字符集。
<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>
发布于 2010-01-25 15:15:06
$str=iconv("windows-1250","UTF-8",$str);
最终帮助我的是什么
发布于 2009-02-16 14:53:28
您需要将服务器设置为使用ISO-8859-15作为字符编码(添加适当的HTTP头)。在html的主体中做这件事是没有帮助的。
我能看到这条线
<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?>
在你的html的源码。这不应该发生。使用Live HTTP头,我看不到适当的字符集HTTP头。在您的第一个页面和ajax服务中都使用它。
https://stackoverflow.com/questions/553463
复制相似问题