我目前正在编码一个法语网站。有一个时间表页面,可以使用侧面的链接加载另一天的时间表。这是我用来执行此操作的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>换到下一行?干杯
3 回答

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

慕哥9229398
TA贡献1877条经验 获得超6个赞
在AJAX调用中指定内容类型可以解决我在挪威站点上的问题。
$.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'); ?>
- 3 回答
- 0 关注
- 922 浏览
添加回答
举报
0/150
提交
取消