2015-01-20 2 views
5

Я отправляю параметры (включая специальные символы, такие как ä, ö, ü) через jquery.ajax в div результатов. В этом div мне нужно обработать его с помощью php.Немецкие специальные символы застревают при отправке через ajax

Например:

$(document).ready(function() { 
    $('#dropdown').change(function() { 
     $.ajax({ 
      url: "inc/ajax.results.php", 
      type: "GET", 
      data: 'type='+$('#type').val() 
     }).done(function(data){ 
      $("#results").html(data); 
     }); 
    }); 
}); 

В этом примере 'типа' имеет значение '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, но в интернете-проводнике результат «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

И вы сохранили файлы в UTF8, а также. – adeneo

+0

И установите правильную кодировку и т. Д. – adeneo

+0

да все файлы utf8 – cypher75

ответ

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); 
     }); 
    }); 
}); 
3

На странице HTML, где у вас есть выпадающий список, вставьте

<meta charset="utf-8"> 

или

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

внутри тега.

И не забудьте сохранить все ваши файлы в кодировке UTF-8 (или лучше: UTF-8 без BOM)

Apache серверы сконфигурированы для обслуживания файлов в ISO-8859-1 по умолчанию, так что вам нужно добавьте следующую строку в файл .htaccess:

AddDefaultCharset UTF-8 
+0

Это то, что у меня уже есть ... Все еще не работает. Хммм .. Я попробую альтернативные варианты ... – cypher75

Смежные вопросы