我目前正在编码一个法语网站。有一个时间表页面,可以使用侧面的链接加载另一天的时间表。
这是我用来执行此操作的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>换行到下一行?
<li>
<td>
干杯
UTF-8应该可以处理所有重音符号和外国字符-为什么不在数据源上使用它?
编辑 [ 归档测试文件的副本。]与您的数据
一切都应该首先是UTF-8。我将文件加载到notepad ++中,转换为utf-8,然后手动将字符更改为重音符号。一旦完成,一切都会像魅力一样运作。
顺便说一句,除非您的服务器定义为php-process .html文件,否则使用ajax加载的文件不会获得iso字符集。如果您坚持使用iso字符集,请请求一个php文件而不是html文件,并在标头中定义字符集(而不是在文件本身中)