Probleme mit Ajax, Url-Encoding, PHP

heinzler

Lieutnant
Mitglied seit
30.01.2004
Beiträge
82
Renomée
0
Standort
Austria
Hallo,

ich habe etwas mit Ajax rumgespielt und mir ein eigenes Dropdown geschrieben welches jetzt ca. so funktionert wie http://labs.google.com/suggest

Ich habe jedoch Probleme mit den Umlauten. Die Daten werden direkt von der Textbox ausgelesen und mittels Ajax zur PHP-Datei geschickt:

http_request.open('GET', 'suche.php?string='+url, true);

Es funktioniert wunderbar, nur wenn Umlaute vorkommen dann funktioniert es nicht da es ja kodiert werden muss um mittels Get&Post verschickt zu werden.

Verwendet man beispielsweise ein HTML-Formular kodiert dieses folgende Umlaute so:

ü --> %C3%BC
ö --> %C3%B6

So würde es dann auch funktionieren: suche.php?string=%C3%BCben (suche.php?string=üben

Wenn diese Kodierung nicht gemacht wird bricht der String ab also : suche.php?string=? da er den Umlaut nicht verwerten kann.

So weit so gut. Da ich ajax nehme kann ich keine Formular absenden, die Daten im Textfeld werden mit onKeyUP="Methode()..." an die Javascript funktionen gesendent.


Wie codiere ich jetzt diese Daten richtig? Wie heißt diese Kodierung überhaupt richtig?

Ich habe schon viel gegooglet, habe auch die PHP-Funktion "urlencode()/urldecode()" probiert, hier das komische:

urlencode(ü) gibt als wert %FC zurück
urldecode(%FC) gibt jedoch nicht wieder ü zurück sondern ein ? --> Also er kann es nicht dekodiern.

Wenn ich urldecode(%C3%BC) mache bekomme ich mein ü!

Kann mir jemand sagen wie ich mit Javascript meine Umlaute in das richtige Format bekomme?

also ü wird zu %C3%BC usw.?

Und warum kann ich einen mit "urlencode" kodierten text nicht wieder mit urldecode dekodieren? (PHP)

danke und Gruß,
heinzler
 
Probiere mal die Funktionen utf8_decode() und utf8_encode(), UTF8 ist die Standardkodierung für XML-Dinge, solange man keine andere angibt.
 
Hab jetzt die benötigte JavaScript funktion gefunden:

encodeURI()

funktioniet jetzt wunderbar

mfg,
heinzler
 
Zurück
Oben Unten