Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8785[/thread]

lc / uc und Umlaute

Leser: 1


<< >> 6 Einträge, 1 Seite
GoodFella
 2007-02-23 13:45
#74537 #74537
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
1
2
3
4
my $ucstring = 'BLÄH';
my $lcstring = 'füsse';
print 'uc('.$lcstring.') = '.uc($lcstring)."\n";
print 'lc('.$ucstring.') = '.lc($ucstring)."\n";


ergibt:

Quote
uc(füsse) = FüSSE
lc(BLÄH) = blÄh


..Die Umlaute werden ignoriert. Gibt es eine Möglichkeit, dies korrekt funktionieren zu lassen?
nepos
 2007-02-23 14:14
#74538 #74538
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ja, du musst mit den Locales arbeiten. Schau dir mal perllocale und perlunicode an.
GoodFella
 2007-02-23 16:31
#74539 #74539
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
danke,

Code (perl): (dl )
use locale;


hat ausgereicht ;)
betterworld
 2007-02-24 04:41
#74540 #74540
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=GoodFella,23.02.2007, 15:31]danke,

Code (perl): (dl )
use locale;


hat ausgereicht ;)[/quote]
Du musst Dir aber darueber im Klaren sein, dass das nicht immer ausreicht. Wenn Du Dein Programm unveraendert auf einen anderen Rechner kopierst, musst Du dort eventuell Umgebungsvariablen aendern oder gar locales generieren, damit es auch dort funktioniert.
nepos
 2007-02-24 14:20
#74541 #74541
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Jo, das use locale; reicht nur dann, wenn auf dem jeweiligen Rechner die Locales des Users auf ein Locale gesetzt sind, das diese Umlaute unterstützt.
ptk
 2007-03-02 21:51
#74542 #74542
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Alternativ kannst du das utf8-Flag setzen:
Code: (dl )
1
2
3
4
5
my $ucstring = 'BLÄH';
my $lcstring = 'füsse';
utf8::upgrade($$_) for (\$ucstring, \$lcstring);
print 'uc('.$lcstring.') = '.uc($lcstring)."\n";
print 'lc('.$ucstring.') = '.lc($ucstring)."\n";

Oder mit "use utf8;" deklarieren, dann musst du aber die Datei auch als utf8 schreiben.
<< >> 6 Einträge, 1 Seite



View all threads created 2007-02-23 13:45.