2015-01-20 9 views
5

Przesyłam parametry (w tym znaki specjalne, takie jak ä, ö, ü) przez jquery.ajax do elementu wynikowego div. W tym dziale muszę go przetworzyć za pomocą php.Niemieckie znaki specjalne utkną podczas przesyłania przez ajax

Na przykład:

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

W tym przykładzie 'typu' ma wartość 'Müller'. W moim 'ajax.results.php' I to zrobić:

<?= $_GET['type'] ?> 

// Output is 'Müller' in Firefox and Chrome 

// BUT in internet explorer the output is 'M' 

Tak, to jest dobre dla Firefox i Chrome, ale w programie Internet Explorer wynik jest 'M' (M następuje placu) ...

próbowałem zmienić wyjście tak:

<?= utf8_encode($_GET['type'] ?> 

// Output in internet Explorer now is fine (Müller) 

// BUT in Firefox and Chrome it is 'Müller' 

Jako wyjście musi być za pośrednictwem PHP (bo zrobię dalsze operacje z nim), nie mogę znaleźć rozwiązanie ..

Czy ktoś może pomóc rozwiązać ten problem problem? Thanks a lot

+0

I zapisywane pliki w UTF-8, jak również. – adeneo

+0

I ustawić poprawny zestaw znaków itp. – adeneo

+0

tak wszystkie pliki są utf8 – cypher75

Odpowiedz

2

Dziękuję wszystkim za pomoc.

znalazłem rozwiązanie siebie: Dodałem „encodeURIComponent()” do mojego żądania ajax i działa :-)

$(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

Na stronie HTML, gdzie masz listę rozwijaną, włóż

<meta charset="utf-8"> 

lub

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

wewnątrz znacznika.

I pamiętaj, aby zapisać wszystkie pliki jako UTF-8 (lub lepiej: UTF-8 bez BOM)

serwery Apache są skonfigurowane do obsługi plików w ISO-8859-1 domyślnie, więc trzeba dodaj następujący wiersz do pliku .htaccess:

AddDefaultCharset UTF-8 
+0

To jest to, co już mam ... Nadal nie działa. Hmmm .. Spróbuję alternatywnych odmian ... – cypher75