#!/usr/bin/perl -w
use strict;
use Encode;
chomp(my $input = <STDIN>);
my $string = decode("UTF-8",$input);
$string = lc($string);
print encode("UTF-8",$string);
Я был удивлён,что совершенно не требуется прагма use locale. Наоборот, при её использовании всё только ухудшается.Также существуют функции decode_utf8 и encode_utf8, которые принимают только один параметр; работают аналогично.Юникод - двухбайтовая кодировка, и требует подобного обращения при любом использовании. В конце хочу добавить,что замечание интерпретатора "Wide character in print at ..." сигнализирует о том,что вы забыли закодировать строку обратно в UTF-8, и выводите её на экран во внутренней кодировке (попробуйте заменить последнюю строку на обычный print $string).
Комментариев нет:
Отправить комментарий