Zur Website

Start Buchtipp Noch mehr Lösungen und Tricks Kontakt Copyright Impressum







Perl Modul:

String URL-unkodieren

Vollständige oder
selbstbestimmte
Rück-Kodierung


Nr.21

©2004



Erläuterung:

Die Subroutine HTML_SONDERZ_URL_BACK nimmte eine Rück-Kodierung (ISO-8859-1-Code (8-Bit-ASCII-Code)) nach allen oder den 123 wichtigsten, europäischen Sonderzeichen (von " bis ÿ) vor.

In der beiliegenden Datei PL0004.pm ist die Programmierung als eigenes Perl-Modul ausgeführt, lauffähig sowohl unter Linux/Perl als auch Windows/Active Perl.

Subroutine:

sub HTML_SONDERZ_URL_BACK
{
my ($String) = $_[0];
if ($_[1] eq "all")
{
$String =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
return ($String);
}
$String =~ s/%22/"/mg;
$String =~ s/%23/#/mg;
$String =~ s/%24/\$/mg;
$String =~ s/%25/%/mg;
$String =~ s/%26/&/mg;
$String =~ s/%27/'/mg;
$String =~ s/%2b/\+/mg;
$String =~ s/%2f/\//mg;
$String =~ s/%3a/:/mg;
$String =~ s/%3b/;/mg;
$String =~ s/%3c/</mg;
$String =~ s/%3d/=/mg;
$String =~ s/%3e/>/mg;
$String =~ s/%3f/\?/mg;
$String =~ s/%40/@/mg;
$String =~ s/%5b/\[/mg;
$String =~ s/%5c/\\/mg;
$String =~ s/%5d/\]/mg;
$String =~ s/%5e/\^/mg;
$String =~ s/%5f/_/mg;
$String =~ s/%60/`/mg;
$String =~ s/%7b/\{/mg;
$String =~ s/%7c/\|/mg;
$String =~ s/%7d/\}/mg;
$String =~ s/%7e/~/mg;
$String =~ s/%80/€/mg;
$String =~ s/%83/ƒ/mg;
$String =~ s/%89/‰/mg;
$String =~ s/%90/Š/mg;
$String =~ s/%97/­/mg;
$String =~ s/%a1/¡/mg;
$String =~ s/%a2/¢/mg;
$String =~ s/%a3/£/mg;
$String =~ s/%a4/¤/mg;
$String =~ s/%a5/¥/mg;
$String =~ s/%a6/¦/mg;
$String =~ s/%a7/§/mg;
$String =~ s/%a8/¨/mg;
$String =~ s/%a9/©/mg;
$String =~ s/%aa/ª/mg;
$String =~ s/%ab/«/mg;
#$String =~ s/&not;/¬/mg;
$String =~ s/%ae/®/mg;
#$String =~ s/&hibar;/¯/mg;
$String =~ s/%b0/°/mg;
$String =~ s/%b1/±/mg;
$String =~ s/%b2/²/mg;
$String =~ s/%b3/³/mg;
$String =~ s/%b4/´/mg;
$String =~ s/%b5/µ/mg;
#$String =~ s/%b6/¶/mg;
$String =~ s/%b6/\n/mg;
#$String =~ s/%b6/\s/mg;
$String =~ s/%b7/·/mg;
$String =~ s/%b8/¸/mg;
$String =~ s/%b9/¹/mg;
$String =~ s/%ba/º/mg;
$String =~ s/%bb/»/mg;
$String =~ s/%bc/¼/mg;
$String =~ s/%bd/½/mg;
$String =~ s/%be/¾/mg;
$String =~ s/%bf/¿/mg;
$String =~ s/%c0/À/mg;
$String =~ s/%c1/Á/mg;
$String =~ s/%c2/Â/mg;
$String =~ s/%c3/Ã/mg;
$String =~ s/%c4/Ä/mg;
$String =~ s/%c5/Å/mg;
$String =~ s/%c6/Æ/mg;
$String =~ s/%c7/Ç/mg;
$String =~ s/%c8/È/mg;
$String =~ s/%c9/É/mg;
$String =~ s/%ca/Ê/mg;
$String =~ s/%cb/Ë/mg;
$String =~ s/%cc/Ì/mg;
$String =~ s/%cd/Í/mg;
$String =~ s/%ce/Î/mg;
$String =~ s/%cf/Ï/mg;
$String =~ s/%d0/Ð/mg;
$String =~ s/%d1/Ñ/mg;
$String =~ s/%d2/Ò/mg;
$String =~ s/%d3/Ó/mg;
$String =~ s/%d4/Ô/mg;
$String =~ s/%d5/Õ/mg;
$String =~ s/%d6/Ö/mg;
$String =~ s/%d7/×/mg;
$String =~ s/%d8/Ø/mg;
$String =~ s/%d9/Ù/mg;
$String =~ s/%da/Ú/mg;
$String =~ s/%db/Û/mg;
$String =~ s/%dc/Ü/mg;
$String =~ s/%dd/Ý/mg;
$String =~ s/%de/Þ/mg;
$String =~ s/%df/ß/mg;
$String =~ s/%e0/à/mg;
$String =~ s/%e1/á/mg;
$String =~ s/%e2/â/mg;
$String =~ s/%e3/ã/mg;
$String =~ s/%e4/ä/mg;
$String =~ s/%e5/å/mg;
$String =~ s/%e6/æ/mg;
$String =~ s/%e7/ç/mg;
$String =~ s/%e8/è/mg;
$String =~ s/%e9/é/mg;
$String =~ s/%ea/ê/mg;
$String =~ s/%eb/ë/mg;
$String =~ s/%ec/ì/mg;
$String =~ s/%ed/í/mg;
$String =~ s/%ee/î/mg;
$String =~ s/%ef/ï/mg;
$String =~ s/%f0/ð/mg;
$String =~ s/%f1/ñ/mg;
$String =~ s/%f2/ò/mg;
$String =~ s/%f3/ó/mg;
$String =~ s/%f4/ô/mg;
$String =~ s/%f5/õ/mg;
$String =~ s/%f6/ö/mg;
$String =~ s/%f7/÷/mg;
$String =~ s/%f8/ø/mg;
$String =~ s/%f9/ù/mg;
$String =~ s/%fa/ú/mg;
$String =~ s/%fb/û/mg;
$String =~ s/%fcü//mg;
$String =~ s/%fd/ý/mg;
$String =~ s/%fe/þ/mg;
$String =~ s/%ff/ÿ/mg;
$String =~ s/%20/ /mg;

return($String);
}

Aufruf:

1. Subroutine

$String_unkodiert = &HTML_SONDERZ_URL_BACK($String,"all");

z.B.

$cod = &HTML_SONDERZ_HTML_BACK("Stra%dfe","all");

# $cod enhält "Straße"

Die Subroutine muss im Programmtext gespeichert sein.

2. Modul

A:Speichern Sie das Modul in Ihrem Perlverzeichnis unter

/usr/bin/perl/lib/EIGEN/HTML/PL0004.pm (Linux)

c:\Perl\lib\EIGEN\HTML\PL0004.pm (Windows)

B: Fügen Sie in den Kopf Ihres Perl-Programmes folgende Zeile ein:

use EIGEN::HTML::PL0004 qw(HTML_SONDERZ_URL_BACK);

C: So rufen Sie die Subroutine auf:

$cod = HTML_SONDERZ_URL_BACK("Stra%dfe","all"); # ohne "&" korrekt!

Die Subroutine muss nicht im Programmtext gespeichert sein.

3.Hinweis

An Stelle des 2. Parameters "all" kann der Subroutine auch ein leerer String "" übergeben werden.

"all" - Alle Sonderzeichen werden rückkodiert

"" - Es werden nur die 123 in der Liste enthaltenen Kodierungen in Sonderzeichen rüpckkodiert (für manche Anwendungsfälle sehr nützlich)