Abfrage von Sonderzeichen in Perl
Jan-Benedict Glaw
jbglaw at lug-owl.de
Sun Jul 24 23:10:28 CEST 2005
On Sat, 2005-07-23 18:34:28 +0200, Frank Matthieß <frankm at lug-owl.de> wrote:
> ich habe hier die Herausforderung ein Perlscript zu schreiben.
Herausforderung. Sehr interpretations-offen :-)
> Nun stehe ich vor dem Problem in einem utf-8 String die Zeichenklasse
> [äÄöÖüÜß] testen zu wollen um dann anschließend den String mit Base64 zu
> encodieren.
>
> Das encodieren klappt soweit, aber der Test geht nicht.
>
> if ( $display =~ /<???>/ ) {
> ...hier base64 encoding...
> } else {
> ...hier keine encodierung...
> }
>
> Nun würde ich gerne wissen was ich statt <???> schreiben muss.
Mit "$foo =~ /bar/" kann man gucken, ob bar in $foo enthalten ist,
right? UTF-8 ist ja nur eine Kodierung; ich vermute mal, daß, wenn Du
das Perl-Script in einem uxterm (oder auf der Console nach
'unicode_start') eingibst, da, wo ein Umlaut zu finden ist, dann die
entsprechende Multibyte-Sequenz stehen wird. Perl weiß dann zwar nicht,
daß es sich um einen Umlaut handelt, aber es sollte die murkelige
Bytefolge dennoch match'en können. Also
if ( $display =~ /ä/
|| $display =~ /Ä/
|| $display .....) {
base64_stuff;
} else {
non_base64_stuff;
}
Die ODER-Verknüpfung könnte in Perl natürlich anders aussehen :)
Wichtig sollte nur sein, daß Du das in einem Unicode-Terminal eintippst.
Aber es gibt da sicherlich noch schönere Varianten...
MfG, JBG
--
Jan-Benedict Glaw jbglaw at lug-owl.de . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20050724/4b06581c/attachment.sig>
More information about the Linux
mailing list