Zeichen-Maskierung
André Muschter
- perl
Hallo, liebe Fachkollegen,
im Parameter-Datenstrom eines Perl-Skriptes werden bestimmte Zeichen (Sonderzeichen, ASCII-Codes
über 128) maskiert übertragen (bzw. sollten zumindestens!). Aus einem
ü wird demnach ein %FC
Am Anfang eines jeden Perl-Skriptes sollte demnach die Möglichkeit bestehen, diese Hexadezimal-Codes
in lesbare ASCII-Zeichen umzuwandeln. Dies kann man erreichen mit
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
Mich würde nun an dieser Stelle interessieren, wie der umgekehrte Weg funktioniert, d.h. eine elegante Methode,
wie ich bestimmte ASCII-Zeichen in diesen %HexaCode wandeln kann, um den Ausgabestrom, der evtl.
Sonderzeichen etc. enthalten könnte, exakt abzuschicken. Die Anweisung sollte der obigen ähneln, also in
der Form:
$value =~ s/[äöüÄÖÜß#$]/???????????/eg;
Was müßte an Stelle der Fragezeichen für ein Ausdruck stehen, um äöüÄÖÜß#$ in %HexaCodes
umwandeln zu können?
Schöne Grüße
André
Hi,
Am Anfang eines jeden Perl-Skriptes sollte demnach die Möglichkeit bestehen, diese Hexadezimal-Codes
in lesbare ASCII-Zeichen umzuwandeln. Dies kann man erreichen mit
use CGI;
$value = CGI::unescape($value);
Mich würde nun an dieser Stelle interessieren, wie der umgekehrte Weg funktioniert,
$value = CGI::escape($value);
Cheatah
Hi,
Am Anfang eines jeden Perl-Skriptes sollte demnach die Möglichkeit bestehen, diese Hexadezimal-Codes
in lesbare ASCII-Zeichen umzuwandeln. Dies kann man erreichen mituse CGI;
$value = CGI::unescape($value);Mich würde nun an dieser Stelle interessieren, wie der umgekehrte Weg funktioniert,
$value = CGI::escape($value);
Cheatah
Schönen Dank für Deine Hilfe, Cheatah. Das ist es. Habe gleich mal in der cgi.pm nachgeschaut. :)
Also, danke nochmals
André