Forum Webscript.Ru
Программирование => Perl => Тема начата: /IE][A от 02 Декабря 2003, 11:30:10
-
Привет !!!
Столкнулся с проблемой перевода букв в верхний регистр под виндой.
При выводе на экран (через консоль) все пишется нормально, при применении регекспов и функций работы со строками, строки остаются без изменений.
Регулярные выражения тоже работают не совсем нормально, т.е. если текст набран маленькими буквами, тогда разбирается, если присутствуют большие не обрабатывается, хотя обработка идет бещ учета регистра.
Текст набирается в 866 кидоровке.
При применениях locale вообще лажа получается.
Пробовал всякие комбинации локали (Russian, Russian.CP1251, Russian.koi8r).
-
Пробовал всякие комбинации локали
Пробуй еще. Читай маны. Ты на верном пути.
-
Может подскажешь какие именно читать :) ?
-
Ну собственно perldoc perllocale
А также загляни сюда http://forums.webscript.ru/showthread.php?s=&postid=93559
Плюс поиск далее по форуму.
-
при изменении локали (использовал разные), результат один и тот-же.
-
Попробуй
print setlocale(LC_CTYPE, \'rus_RUS\');
Что напишет?
-
Пишет Russian_Russia.CP1251.
-
меняю на кои (Russian.koi8r), все равно пишет 1251.
-
/IE][A:
меняю на кои (Russian.koi8r),
значит она не установлена (по крайней мере под этим именем)
только я не понял зачем, если текст в кодировке 866, устанавливать koi8r или win1251
-
/IE][A
Эээ... А, что же тебя не устраивает?
-
ДЛя пробы, проверить работает вообще или нет.
Тогда как 866 именуется (CP866 или еще как-то.), просто с 866 кодировкой не случалось работать
-
Специально для тех кто столкнется с этой проблемой в Винде.
use locale;
use POSIX qw(locale_h);
BEGIN {
setlocale(LC_ALL, "Russian_Russia.866");
}