URL encoden?

matze1985

Aktives Mitglied
Mitglied seit
17 Feb 2007
Beiträge
1,537
Punkte für Reaktionen
0
Punkte
0
Gibt es eine Möglichkeit einen Text als URL zu encoden?
also aus "foo bar" soll dann "foo%20bar" werden.

Der httpd bietet ja gerade den Rückweg, aber die nicht.
Gibt es noch ein anderes Tool welches mir helfen könnte?

Matze

Edit:
Meine aktuelle Lösung ist:
Ich habe ein file "/tmp/flash/urlencode.sed" erstellt mit folgenden Inhalt:
Code:
s/ /%20/g
s/:/%3A/g
s/(/%28/g
s/)/%29/g
s/,/%2C/g
s/ü/%C3%BC/g
s/ä/%C3%A4/g
s/ö/%C3%B6/g
s/ß/%C3%9F/g
s/;/%3B/g
s/~/%7e/g
s/!/%21/g
s/"/%22/g
s/#/%23/g
s/\$/%24/g
s/\&/%26/g
s/@/%40/g
s/\[/%5b/g
s/\\/%5c/g
s/\]/%5d/g
s/_/%5f/g
s/`/%60/g
s/{/%7b/g
s/|/%7c/g
s/}/%7d/g

das ecoding der, in der variablen "text" stehenden, Nachricht mache ich dann über denn aufruf
Code:
text=$(echo "$text" | sed -f /var/tmp/flash/urlencode.sed )
Welche ich dann an die URL anhänge so z.b.
Code:
wget "http://bsp.tdl/listener.php?msg=$text"

Aber vielleicht kennt ja noch jemand eine andere Lösung?
 
Zuletzt bearbeitet:
Etwas kompakter macht das Andreas Bühmann im Callmonitor. Auszug aus url.sh:

Code:
urlencode() {
_urlencode '%\1' "$@"
}
_urlencode() {
local replacement=$1; shift
local txt=$*
case $txt in
*[!0-9A-Z_a-z!*.-]*) ;;
*) echo -n "$txt"; return ;;
esac
echo -e $(echo -n "$txt" |
hexdump -v -e '/1 "!%02x"' |
sed '
s/!\(2[1ade]\|3[0-9]\|4[1-9a-f]\|5[0-9af]\|6[1-9a-f]\|7[0-9a]\)/\\x\1/g
s/!\([[:xdigit:]]\{2\}\)/'"$replacement"'/g
')
}

Kurzer Test dazu:
Code:
[COLOR="gray"]# URL-Kodierung[/COLOR]
$ [B]urlencode "Böse Mädchen müssen auch die Füße waschen!"[/B]
B%f6se%20M%e4dchen%20m%fcssen%20auch%20die%20F%fc%dfe%20waschen!

[COLOR="Gray"]# Gegenprobe[/COLOR]
$ [B]httpd -d $(urlencode "Böse Mädchen müssen auch die Füße waschen!")[/B]
Böse Mädchen müssen auch die Füße waschen!
 

Statistik des Forums

Themen
244,952
Beiträge
2,221,468
Mitglieder
371,720
Neuestes Mitglied
ewaro
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.