2015-01-20 9 views
5

Ich übergebe Parameter (inklusive Sonderzeichen wie ä, ö, ü) über jquery.ajax an einen Ergebnisdiv. In diesem div muss ich es mit PHP verarbeiten.Deutsche Sonderzeichen bleiben beim Einreichen per Ajax stecken

Zum Beispiel:

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

In diesem Beispiel 'Typ' hat den Wert 'Müller'. In meinem 'ajax.results.php' Ich tue dies:

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

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

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

Also, es ist in Ordnung für Firefox und Chrome, aber im Internet Explorer ist das Ergebnis 'M' (M durch ein Quadrat), gefolgt ...

ich habe versucht, die Ausgabe wie folgt zu ändern:

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

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

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

da die Ausgabe über PHP sein muss (weil ich mit ihm weiteren Operationen tun würde), habe ich keine Lösung finden kann ..

Kann jemand bitte helfen, dies zu lösen Problem? Vielen Dank

+0

Und Sie die Dateien in UTF-8 gespeichert als auch. – adeneo

+0

Und setzen Sie einen richtigen Zeichensatz usw. – adeneo

+0

ja alle Datei utf8 – cypher75

Antwort

2

Vielen Dank für Ihre Hilfe.

fand ich die Lösung selbst: Ich habe ‚encodeURIComponent()‘ zu meiner Ajax-Anforderung hinzugefügt und es funktioniert :-)

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

Auf der HTML-Seite, wo Sie die Dropdown-Liste haben, legen

<meta charset="utf-8"> 

oder

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

innerhalb des Tags.

Und sicher sein, alle Ihre Dateien als UTF-8 (oder besser: UTF-8 ohne BOM) speichern

Apache-Server konfiguriert sind Standard zu dienen Dateien in ISO-8859-1 durch, so dass Sie brauchen Fügen Sie Ihrer .htaccess-Datei die folgende Zeile hinzu:

AddDefaultCharset UTF-8 
+0

Das ist, was ich schon habe ... Noch funktioniert es nicht. Hmmm .. Ich werde ein paar alternative Varianten ausprobieren ... – cypher75