Thread Zeichensatzproblem mit Š
(15 answers)
Opened by bianca at 2019-06-07 19:07
Danke an haj und rosti aber ich weiß, dass es so funktioniert wie von euch gezeigt aber in meinem Script geht es nicht. Dort kommen die beiden Zeichen laut Data::Dumper an, wie ich gezeigt habe aber ein und der selbe Regex reagiert nur auf das kleine š richtig. Warum nicht auch auf das große Š?
Hiermit ist das reproduzierbar: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; local $Data::Dumper::Purity;$Data::Dumper::Purity = 1; local $Data::Dumper::Useqq;$Data::Dumper::Useqq = 1; local $Data::Dumper::Deparse = 1;$Data::Dumper::Deparse = 1; local $Data::Dumper::Sortkeys;$Data::Dumper::Sortkeys = sub { my ($hash) = @_; return [(sort {lc $a cmp lc $b} keys %$hash)]; }; use 5.010; my $name = "Zala Kralj & Ga\250per \246antl"; # no, that's not actually *my* name. my @liste; for (my $p = 0; $p < length($name); $p ++) { if (substr($name,$p,1) =~ /[^0-9a-z @\.,_#+±%()\[\]\$\-~¿!'&§°¨ßäöüÅÄÁÀÃÂÖÜÚÉÈÑþœçáàåãâëéèêòóúùîïí©øØô½ñšŠý®¬µ¯]/i) { push @liste,$p+1; } } say Dumper(\@liste); Das Script wurde in Notepad++ in der Kodierung "ANSI" gespeichert (daher meine Angabe "ANSI-Script") und soll das jeweilige Zeichen an jeder Position untersuchen und nicht zugelassene einzeln listen. Ergebnis ist 21, das ist das große Š. Warum bleibt das hängen und das kleine š nicht? 10 print "Hallo"
20 goto 10 |