PDA

Показать полную графическую версию : Что с utf-8?


benya
28-01-2006, 16:06
Господа, есть простенький код. Хочу добится правильной работы регулярных выражений.
Документ находится в той же кодировке - в utf-8

Почему в KOI8 и CP1251 работает, а в UTF-8 не работает?

#!/usr/bin/perl
print "Content-type: text/html\n\n";
use locale;
use POSIX qw(locale_h);
setlocale(LC_CTYPE,"ru_RU.UTF-8");

$test="тест";
if($test=~/ТЕСТ/gi){print "OK";}
else{print "NOT OK";}

vadimiron
28-01-2006, 16:38
setlocale(LC_CTYPE,"ru_RU.UTF-8");
Я правда в этом не так сильно разбераюсь, но при чём тут ru_RU? Вроде для UTF-8 всё равно должно быть, то наверно должно просто UTF-8 стоять.
Или так для других целей пишут?

benya
30-01-2006, 12:37
Перепробовал все варианты. Полазив по сайтам показалось что у Перла проблемы с utf-8. Для этого есть какие-то "прагмы".
Убрал это :

use locale;
use POSIX qw(locale_h);
setlocale(LC_CTYPE,"ru_RU.UTF-8");

Поставил это:

use utf8;

Хотя есть еще один вариант:

use encoding 'cp1251', STDOUT => 'koi8-r';



P.S. Вроде работает ;)




© OSzone.net 2001-2012