[Krakow-pm] Mam ptyanie w sprawie polskich znaków

Zbigniew Lukasiak zzbbyy at gmail.com
Thu May 20 11:14:39 PDT 2010


2010/5/20 Reinhard Erich Voglmaier <voglmaier at hotmail.com>:
> Dzien Dobry,
> Przepraszam, ja nie mowie dobrze polskiego ale sprobuje ...
> Chcę napisać program, który czyta tekst w języku polskim i liczy słówy.
> Używam funkcji "pattern matching"  \w ale nie nie dziala.
> Perl nie rozumie niektórych znaków ( na przykład : ł, ć, ó, ż ).
>
> Potem spróbował
> use POSIX qw(locale_h) ;
> setlocale(LC_ALL,"Polish_Poland") or die "Could not set locale";
>
> Sama problem.
> Czy możesz mi pomóc ?
> Używam Activestate Perl na Windows XP.
>

Witam,

Oczywiście \w powinno działać.  Wydaje mi się, że locale nie są tutaj
wogóle ważne - bo teraz Perl odróżnia znaki od bajtów.  Ważne jest
natomiast, żeby odpowiednio te znaki 'odkodowywać' jak się je czyta z
zewnątrz.

Proszę spróbować na przykład:

use utf8;
binmode(STDOUT, ":utf8");

my $string = "łćóż";
while( $string =~ /(\w)/g ){
   print $1;
}
print "\n";

Pozdrawiam,
Zbigniew Lukasiak
http://brudnopis.blogspot.com/
http://perlalchemy.blogspot.com/


More information about the Krakow-pm mailing list