Problem mit Zeichemkodierung von Umlaute in Formulardaten
Infosauger
- barrierefreiheit
Leider ist mein alter Thread vom Juni schon im Archiv.
Siehe http://forum.de.selfhtml.org/archiv/2011/6/t205493/
Ich konnte erst jetzt den Tipp mit escape ausprobieren.
Ergebnis:
Ohne Funktion wird aus Österreich im Eingabefeld "Österreich".
Mit Escape (aber auch ecodeURI oder encodeURIComponent) wird aus Österreich "%C3%96sterreich".
Mein Aufruf:
...
document.frmeGlossar.Begriff.value=encodeURIComponent(document.frmsuche.Suchstring.value);
...
hi,
Mit Escape (aber auch ecodeURI oder encodeURIComponent) wird aus Österreich "%C3%96sterreich".
Nö. escape('Ö') ergibt %D6
Du kannst es testen, gleich in der Adresszeile:
javascript:alert(escape('Ö'))
die anderer Funktion ergibt %C3%96
javascript:alert(encodeURIComponent('Ö'))
Hotti
hi,
Mit Escape (aber auch ecodeURI oder encodeURIComponent) wird aus Österreich "%C3%96sterreich".
Nö. escape('Ö') ergibt %D6
Du kannst es testen, gleich in der Adresszeile:
javascript:alert(escape('Ö'))die anderer Funktion ergibt %C3%96
javascript:alert(encodeURIComponent('Ö'))Hotti
ok, da hab ich aus dem falschen Ergebnisfenster kopiert.
Was aber daran nichts ändert, dass das eigentliche Problem mit diesen Funktionen nicht gelöst wird.
hi,
Was aber daran nichts ändert, dass das eigentliche Problem mit diesen Funktionen nicht gelöst wird.
Das Problem besteht darin, dass Du Dich entscheiden musst, escape() oder encodeURIComponent() zu verwenden, jedoch die Stelle, wo diese Entscheidung getroffen werden muss, nicht erkennst.
Abstrakt:
escape: betrachtet die Zeichen als 8-bit-Kodiert und nimmt dazu eine im Browser eingebaute Übersetzungstabelle
encodeURIComponent: betrachtet die Zeichen als utf-8-kodiert, die Übersetzungstabelle ist Unicode.
Hotti
[latex]Mae govannen![/latex]
Das Problem besteht darin, dass Du Dich entscheiden musst, escape() oder encodeURIComponent() zu verwenden
Da gibt es nichts zu entscheiden. escape() ist schon seit längerer Zeit veraltet und sollte nicht verwendet werden:
Stur lächeln und winken, Männer!
Kai
[latex]Mae govannen![/latex]
Das Problem besteht darin, dass Du Dich entscheiden musst, escape() oder encodeURIComponent() zu verwenden
Da gibt es nichts zu entscheiden. escape() ist schon seit längerer Zeit veraltet und sollte nicht verwendet werden:
Genau ;)
Es sei denn, irgendow liegen nochn paar vergraute Affen rum, die mit ISO-Schrott gefüttert werden müssen, damit sie nicht kotzen.
Hotti
Hi!
Mit Escape (aber auch ecodeURI oder encodeURIComponent) wird aus Österreich "%C3%96sterreich".
escape() erzeugt eine Prozent-Kodierung gemäß den ISO-8859-1-Bytes eines Zeichen, encodeURI(Component) nimmt UTF-8. Wenn Zeichen jenseits von ASCII verwendet werden, sollte das Ergebnis der beiden Funktionen unterschiedlich sein. Und wenn escape() prozentkodierte UTF-8-Bytes liefert, ist schon früher ein Fehler passiert. Es wird kein Ö mehr sondern die beiden Zeichen à und – erkannt.
Lo!