我通过jquery.ajax将参数(包括ä,ö,ü等特殊字符)提交给结果div。在那个div我需要用php处理它。
例如:
$( document ).ready(function() {
$('#dropdown').change(function() {
$.ajax({
url: "inc/ajax.results.php",
type: "GET",
data: 'type='+$('#type').val()
}).done(function(data){
$("#results").html(data);
});
});
});
在此示例中,“type”的值为“Müller”。在我的'ajax.results.php'中我这样做:
<?= $_GET['type'] ?>
// Output is 'Müller' in Firefox and Chrome
// BUT in internet explorer the output is 'M'
所以,对于Firefox和Chrome来说这很好,但在Internet Explorer中,结果是“M”(M后跟一个正方形)......
我试图像这样改变输出:
<?= utf8_encode($_GET['type'] ?>
// Output in internet Explorer now is fine (Müller)
// BUT in Firefox and Chrome it is 'Müller'
由于输出必须通过PHP(因为我会用它做进一步的操作),我找不到解决方案......
任何人都可以帮忙解决这个问题吗? 非常感谢
答案 0 :(得分:3)
在您有下拉列表的HTML页面上,插入
<meta charset="utf-8">
或
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
在标签内。
并确保将所有文件保存为UTF-8(或更好:没有BOM的UTF-8)
默认情况下,Apache服务器配置为提供ISO-8859-1中的文件,因此您需要将以下行添加到.htaccess文件中:
AddDefaultCharset UTF-8
答案 1 :(得分:2)
感谢大家的帮助。
我自己找到了解决方案:我已将'encodeURIComponent()'添加到我的ajax请求中并且它可以工作: - )
$( document ).ready(function() {
$('#dropdown').change(function() {
$.ajax({
url: "inc/ajax.results.php",
type: "GET",
data: 'type='+encodeURIComponent($('#type').val())
}).done(function(data){
$("#results").html(data);
});
});
});