Вариант 1:
Код: Выделить всё
#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/;
print header(-charset=>'UTF8'),
start_html('A Simple Example');
print "Входящие параметры: " . b(param('str'))."<br>";
print "Регулярные выражения: " . b(('дмитрий станиславович' =~ /Дмитрий/i? "+": "-"))."<br>";
print "Регистр символов: " . b((uc('дмитрий') eq 'ДМИТРИЙ'? "+": "-"))."<br>";
print "Сравнение строк: " . b(('С' lt 'Я'? "+": "-"))."<br>";
print end_html();Текст исходника написан на UTF8. Ввожу в браузере https://127.0.0.1/cgi-bin/koitest.pl?str=привет. Получаю:
Входящие параметры: привет
Регулярные выражения: -
Регистр символов: -
Сравнение строк: +
Вариант 2:
Код: Выделить всё
#!/usr/bin/perl -w
use strict;
use utf8; # <----------------------------
use CGI qw/:standard/;
print header(-charset=>'UTF8'),
start_html('A Simple Example');
print "Входящие параметры: " . b(param('str'))."<br>";
print "Регулярные выражения: " . b(('дмитрий станиславович' =~ /Дмитрий/i? "+": "-"))."<br>";
print "Регистр символов: " . b((uc('дмитрий') eq 'ДМИТРИЙ'? "+": "-"))."<br>";
print "Сравнение строк: " . b(('С' lt 'Я'? "+": "-"))."<br>";
print end_html();Текст исходника написан на UTF8. Ввожу в браузере https://127.0.0.1/cgi-bin/koitest.pl?str=привет. Получаю:
Входящие параметры: ГђВїГ‘?ГђВёГђВІГђµГ‘‚
Регулярные выражения: +
Регистр символов: +
Сравнение строк: +
Вариант 3:
Код: Выделить всё
#!/usr/bin/perl -w
use strict;
use encoding 'utf8'; # <----------------------------
use CGI qw/:standard/;
print header(-charset=>'UTF8'),
start_html('A Simple Example');
print "Входящие параметры: " . b(param('str'))."<br>";
print "Регулярные выражения: " . b(('дмитрий станиславович' =~ /Дмитрий/i? "+": "-"))."<br>";
print "Регистр символов: " . b((uc('дмитрий') eq 'ДМИТРИЙ'? "+": "-"))."<br>";
print "Сравнение строк: " . b(('С' lt 'Я'? "+": "-"))."<br>";
print end_html();Текст исходника написан на UTF8. Ввожу в браузере https://127.0.0.1/cgi-bin/koitest.pl?str=привет. Получаю:
Входящие параметры: ГђВїГ‘?ГђВёГђВІГђµГ‘‚
Регулярные выражения: +
Регистр символов: +
Сравнение строк: +
Вариант 4:
Код: Выделить всё
#!/usr/bin/perl -w
use strict;
use utf8; # <--------------------------
use encoding 'utf8'; # <---------------------------
use CGI qw/:standard/;
binmode(STDIN, ":encoding(utf8)"); # <----------------------
binmode(STDOUT, ":encoding(utf8)"); # <----------------------
print header(-charset=>'UTF8'),
start_html('A Simple Example');
print "Входящие параметры: " . b(param('str'))."<br>";
print "Регулярные выражения: " . b(('дмитрий станиславович' =~ /Дмитрий/i? "+": "-"))."<br>";
print "Регистр символов: " . b((uc('дмитрий') eq 'ДМИТРИЙ'? "+": "-"))."<br>";
print "Сравнение строк: " . b(('С' lt 'Я'? "+": "-"))."<br>";
print end_html();Текст исходника написан на UTF8. Ввожу в браузере https://127.0.0.1/cgi-bin/koitest.pl?str=привет. Получаю:
Входящие параметры: ГђВїГ‘?ГђВёГђВІГђµГ‘‚
Регулярные выражения: +
Регистр символов: +
Сравнение строк: +
Как подружить?
ЗЫ:
Код: Выделить всё
$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ЗЫЗЫ:
Код: Выделить всё
$ perl -v
This is perl, v5.8.8 built for x86_64-linux-gnu-thread-multi