Mal wieder Problem mit Umlauten bei GET
GermanysNextTopfmodel
- https
nabend zusammen,
bion gerade dabei eine "Live-Suche" mit Ajax zu bauen.
Sprich mann gibt oben was ein, und unten listet er die Ergebnisse auf.
klappt auch wunderbar, allerdings gibt es Probleme mit den Umlauten.
Sobald mann etwas mit umlauten eingibt, findet er kein Ergebniss. lasse ich mir den Select per echo ausgeben, und in phpmyadmin eingebe, passt das Ergebnis. Rufe ich die Angesteuert Seite, also die ich mit Ajax aufrufe, alleine, mit GET-Parameter mit Umlaut auf, funktioniert es auch.
urlencode kann ich ja nciht verwenden, da die Daten ja erst im Formular eingegeben werden.
Irgendjemand einen rat
Danke Euch
gruß
GermanysNextTopfmodel
hi,
urlencode kann ich ja nciht verwenden, da die Daten ja erst im Formular eingegeben werden.
Irgendjemand einen rat
http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#encode_uri
Würde ich jetzt nach einer kurzen Recherche raten.
mfg
Moin!
http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#encode_uri
Würde ich jetzt nach einer kurzen Recherche raten.
Die Idee des Encodings ist gut, die Funktion aber die falsche. encodeURIComponent() ist richtig. Man will in GET-Parametern auch &-Zeichen codiert haben, sonst zerstört es einem den Parameterstring ja.
- Sven Rautenberg
Moin!
»» http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#encode_uri
»»
»» Würde ich jetzt nach einer kurzen Recherche raten.Die Idee des Encodings ist gut, die Funktion aber die falsche. encodeURIComponent() ist richtig. Man will in GET-Parametern auch &-Zeichen codiert haben, sonst zerstört es einem den Parameterstring ja.
So pauschal ist das nicht. Wenn die Parameter _einzeln_ mit encodeURI() kodiert werden, ist das auch ok, sofern nicht die Zeichen, die encodeURIComponent() außerdem noch verschlüsseln kann (& usw., siehe Link weiter oben) im Parameter selbst vorkommen.
Einzeln macht z.B. Sinn, wenn im Parameterstring Funktionen eingebaut sind, siehe Beispiel (Link ganz unten). Das & als Parameterlistentrenner muss als & umschrieben werden, sonst meckert der Validator.
Hodde
Nabend zusammen,
musste leider den ganzen Tag arbeiten, deswegen melde ich mich erst so spät.
Habe es jetzt mit encodeURI und encodeURIComponent probiert, aber es läuft immer noch nicht.
dir url sieht danach so aus(per alert ausgegeben):
id=*&company=%C3%A4&sname=*&gname=*&street=*&street_nr=*&zip=*&city=*&phone=*&mobil=*&fax=*&mail=*&hp=*
(sternchen sind meine Platzhalter)
und ein var_dump auf $_GET gibt das aus:
array(13) { ["id"]=> string(1) "*" ["company"]=> string(2) "ä" ["sname"]=> string(1) "*" ["gname"]=> string(1) "*" ["street"]=> string(1) "*" ["street_nr"]=> string(1) "*" ["zip"]=> string(1) "*" ["city"]=> string(1) "*" ["phone"]=> string(1) "*" ["mobil"]=> string(1) "*" ["fax"]=> string(1) "*" ["mail"]=> string(1) "*" ["hp"]=> string(1) "*" }
jetzt sieht das ja so aus als wenn er UTF-8 nehmen würde (wegen dem ä bei company).
Die Seite ist aber iso und ich habe in der Datei, die ich per Ajax anspreche, extra nochmal nen content-header gesetzt, und er liefert Sie auch mit UTF-8 aus.
Habe ich vielleciht irgendwas übersehen, oder irgendwas vergessen.
Danke für Eure Aufopferung
Gruß
germanysNextTopfmodel
hi,
jetzt sieht das ja so aus als wenn er UTF-8 nehmen würde (wegen dem ä bei company).
So ist es. encodeURI('ä') ergibt %C3%A4 und das ist utf-8.
Die Seite ist aber iso [..]
dann nimm escape('ä') und Du bekommst ein %E4 passend zu ISO.
Zum Testen im Browser, Adresszeile: javascript:alert(escape('ä'))
Hotte
Tausend Dank...
klappt wunderbar.
hatte mir den Link zu decodeURI zwar mehrmals durchgelesen, aber nirgendwo stand das das utf-8 ist.
naja, es läuft ja jetzt.
Wünsche ein schöne WE
GermanysNextTopmodel