Kann man mit JavaScript Zeichen einer URL konvertieren?
Rainer Honsch
- javascript
0 Cheatah0 Jürgen Walger0 Jens Müller
Hallo!
Ich möchte folgendes machen:
Ich habe ein Variable, .. die z.B. folgendes enthält:
http://www.test.de/cgi-bin/test.cgi?Hallo=TestTest2 / 5
Nun müssen die Teile hinter dem ? Ja aber konvertiert werden, damit man diese URL an den Browser übergeben kann.
" " z.B. in %20 und / in %XYZ usw. geht das?
Rainer
Hi,
" " z.B. in %20 und / in %XYZ usw. geht das?
hm, sind escape() und unescape() in <../../tecm.htm> wirklich sooo schwer zu finden?
Cheatah
hi
ich dachte mit escape werden nur Steuerzeichen mit den ASCII-Werten 0 bis 31 umgewandelt...
in einer solchen url sollten aber erstmal das " " in "+" und dann noch das "+" selber, "=", "&", "%" und alles von ASCII-Wert 127 bis 255 in die jeweiligen hexadezimalen umgewandelt werden - escape ist da wohl kaum das richtige dafür...
ausserdem kann man das auch nicht an der kompletten url (zb "http://localhost/?a=b&c=d") machen, sondern immer an name ("a" + "c") und wert ("b" + "d") einzeln, da ja sonst die = und & zeichen auch wiederum umgewandelt werden und das geht dann ja auch nicht...
cu
Hallo isotoxin,
ich dachte mit escape werden nur Steuerzeichen mit den ASCII-Werten 0 bis 31 umgewandelt...
Das steht so auch in Selfhtml, ist aber wohl etwas didaktisch reduziert.
Im Zweifel hilft die Netscape Doku weiter:
http://developer.netscape.com/docs/manuals/js/client/jsref/contents.htm
und die sagt, dass URL-encoded wird.
[...] escape ist da wohl kaum das richtige dafür...
doch doch, genau dafür ist es da.
ausserdem kann man das auch nicht an der kompletten url (zb
"http://localhost/?a=b&c=d") machen, sondern immer an name
("a" + "c") und wert ("b" + "d")
einzeln, da ja sonst die = und & zeichen auch wiederum umgewandelt werden und
das geht dann ja auch nicht...
Das stimmt natürlich.
Und sieht dann, wenn du a und b per URL übergeben möchtest so aus:
query_url="http://localhost/script.php3?a=" + escape(a) + "&b=" + escape(b);
Gruss,
Carsten
hi
danke dass du mich drauf aufmerksam machst, dann brauche ich nicht selber ne extra funktion schreiben die das übernimmt was ich demnächst vor hatte :)
da frage ich mich ma was jetzt richtig ist?
also bei escape steht in selfhtml:
Wandelt Steuersequenzen (Steuerzeichen mit den ASCII-Werten 0 bis 31) in ihre ASCII-Zahlenwerte um, und zwar in hexadezimaler Form. Setzt vor jeden Wert das Trennzeichen "%" und gibt die so erzeugte Zeichenkette zurück. Bei anderen Zeichen als Steuerzeichen gibt escape() die Zeichen unverändert zurück. Es handelt sich also um eine Funktion, die Steuerzeichen aus Werten entfernt und in Zeichenfolgen übersetzt.
und bei dem url zeugs steht in selfhtml folgendes:
Leerzeichen in den eingegebenen Daten (z.B. bei mehreren Wörtern) werden durch ein Pluszeichen + ersetzt.
Alle Zeichen mit den ASCII-Werten 128 bis 255 (hexadezimal 80 bis FF) werden durch eine Hexadezimalzeichenfolge umschrieben, eingeleitet durch ein Prozentzeichen % und dahinter der Hexadezimalwert des Zeichens (z.B. wird der deutsche Umlaut ö durch %F6 umschrieben).
Alle Zeichen, die in diesen Regeln als Steuerzeichen vorkommen (also &, +, = und %) werden ebenfalls hexadezimal umschrieben, und zwar genau so wie höherwertige ASCII-Zeichen.
wenn das was da bei escape steht (teilweise) stimmt kann das was zu dem anderen da drinn steht auch nich so ganz richtig sein - denn in einer url können doch wohl auch keine steuerzeichen (angeblich 0-31) drinn stehen, oder?
danke
cu
Hi,
wenn das was da bei escape steht (teilweise) stimmt kann das was zu dem anderen da drinn steht auch nich so ganz richtig sein - denn in einer url können doch wohl auch keine steuerzeichen (angeblich 0-31) drinn stehen, oder?
man schmeiße beides zusammen, dann stimmt's :-)
Um etwas genauer zu sein: Wie eine URL aufgebaut ist, steht in RFC 1738 ftp://ftp.isi.edu/in-notes/rfc1738.txt. Die JavaScript-Funktion escape() wandelt einen String so um, daß er Parameterwert im Searchpart sein kann.
Cheatah
hi
man schmeiße beides zusammen, dann stimmt's :-)
ah, so is das - danke
ich glaube ich stelle deine postings lieber nicht mehr so schnell in frage :)
cu
Hi,
ich glaube ich stelle deine postings lieber nicht mehr so schnell in frage :)
*peitschewiederzusammenroll* Ist auch besser so ;-)
Cheatah
Hallo
Schau mal hier nach
http://www.teamone.de/selfaktuell/artikel/wertueb.htm
da ist im unteren Teil erklärt wie mit hilfe eines Javascripts Zeichen in der URL konvertiert werden können.
Ich denke das ist das was Du suchst.
Gruß
Jürgen
Hallo Rainer,
Danke ich hatte eine ähnliche Frage. Ich rufe seit neuestem die Forumsarchiv / Suche über ein
Bookmarklet ab. Nur hat dies das Problem wenn ich ein Plus vor dem Suchbegriff setze das es im Script
hier auf <Teamone.de/> nicht richtig annkommt.
Für alle die es interesiert das Bookmarklet:
<javascript:javascript:ctSU=document.getSelection();if(!ctSU){void(ctSU=prompt('Suchausdruck...',''))};if(ctSU)location.href='http://www.teamone.de/cgi-local/sfasuch.pl?suchausdruck='+escape(ctSU)>
ctSu bedeutte nich meht als ct Suche da dieses Script ein wenig angepasst (komisch Normalerweise
schreib ich doch assimiliert :) wurde. Den Rest für andere Suchmaschienen ftp://ftp.heise.de/pub/ct/listings/0001-084.zip.
Ich wollte ja schon fast etwas eignes Schreiben.
jens müller