Необходимые условия работы с юникодом в perl.
Проверено под win7x64sp1 на Strawberry Perl 5.32.0.0.
В общем-то, всё есть в разделах perluni*. Большую часть информации можно найти в разделе perlunicode. Но, чтобы как-то упорядочить свои представления о юникоде, мне пришлось потратить несколько часов на вдумчивое чтение раздела perluniintro.
use utf8;
См. utf8.
Способ сказать перлу, что исходный файл программы имеет формат UTF-8.
use feature 'unicode_strings';
См. unicode_strings
Это рекомендованная опция для всех операций с юникодом.
open my $in, '<:utf8', 'test.txt';
Но для операций записи надёжнее использовать :encoding(UTF-8)
. См.
perlunifaq
Чтобы избежать сообщений "wide character"
binmode STDOUT, ":encoding(UTF-8)";
. В нашем случае — :encoding(CP866)
.