Thread Regex Vergleich und "use locale" (4 answers)
Opened by Raphael at 2015-11-26 14:45

betterworld
 2015-11-28 01:01
#183073 #183073
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Du brauchst keine Locales und kein "use locale". Früher, als alles in 8-Bit-Zeichen codiert war, brauchte man Locale, um das Charset festzulegen, welches dann sagt, welche Zeichen Umlaute sind.

Aber wenn man Unicode-Strings hat (sie müssen in Perl das utf8-Flag gesetzt haben, das ist leider ein bisschen lowlevel), dann weiß Perl von sich aus schon, welche Zeichen Umlaute sind, weil das in Unicode festgelegt ist. Dein String müsste eigentlich das utf8-Bit gesetzt haben, weil er eine literale Konstante aus einem Script ist, welches "use utf8" benutzt. Und bei mir funktioniert das auch so:

Code (perl): (dl )
1
2
3
4
use strict;
use utf8;
my $s = 'ü';
print $s =~ /\w/;  # Ausgabe: 1


Wenn es bei dir nicht so funktioniert, solltest du mal prüfen, ob dein Script tatsächlich in UTF-8 kodiert ist. Eventuell funktioniert es auch in älteren Perl-Versionen nicht richtig.
Last edited: 2015-11-28 01:03:30 +0100 (CET)

View full thread Regex Vergleich und "use locale"