URI Escaping

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

URI Escaping

Beitragvon zebby » 11.08.2006 21:37

Hallo ,

folgende Problematik ist derzeit für mich unlösbar:

Ein URL mit einem Leerzeichen

Code: Alles auswählen

domain.de/dir1/-db 12345.html



wird von einem Script so zum anklicken ausgegeben:

Code: Alles auswählen

domain.de/dir1/-db 12345.html



in der Adresszeile von Firefox steht nach Klick

Code: Alles auswählen

domain.de/dir1/-db%A012345.html



im IE bleibt folgende Version erhalten

Code: Alles auswählen

domain.de/dir1/-db 12345.html



Wie ist diese Entitie Hex Codierung rückgänigig zu machen.
Ich schreibe Perl und komme mit
der hex to ascii zeile

Code: Alles auswählen
$nummer =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;


nicht zum gewünschten Ergebnis.

grüße zebby
zebby
.
.
 
Beiträge: 3
Registriert: 26.07.2006 13:36

Beitragvon Bob » 15.08.2006 01:57

wird von einem Script so zum anklicken ausgegeben:
Mit einem %20 hättest du wohl keine Probleme, so ist es ja eigentlich vorgesehen. So wied der IE das auch anfordern, denn ein Leerzeichen ist da kein zulässiges Zeichen.

Perl führt also standardmäßig kein URL-decode durch? Hast du uri_unescape(); schon mal probiert? Zuvor musst du das Modul aber deklarieren,
Code: Alles auswählen
use URI::Escape;
Grüße
Robert
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon zebby » 15.08.2006 19:16

Hallo Robert,

natürlich ist es sinnvoller einen Url zu escapen anstatt entitie konform zu kodieren.

danke für die antwort :roll:

Gruß Zebby
zebby
.
.
 
Beiträge: 3
Registriert: 26.07.2006 13:36


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron