Forum Webscript.Ru
Программирование => Perl => Тема начата: kosm от 10 Сентября 2003, 11:03:51
-
Ребят, позвольте еще вопросик?
uc() не работает для unicod\'ов? Как можно поднять регистр для кирилицы?
СПАСИБО!
-
В FAQ лежит твой ответ
-
NeoNox
Сори за невнимательность.
СПАСИБО!
-
NeoNox
В FAQ нашел только это http://wiki.webscript.ru/PFRERegister (http://wiki.webscript.ru/PFRERegister)
Или ты имеешь ввиду, что стоит поискать какую нить либу на CPAN?
-
locale -a
nlsinfo
ls /usr/lib/nls/loc
ls /usr/lib/locale
ls /usr/lib/nls
ls /usr/share/locale
проверь данные команды. одна из них должна вывести список установленных у тебя локалей. если не найдешь нужную - добавь.
после этого в скрипте:
---------------------
....
use locale;
use POSIX qw/locale_h/;
setlocale(LC_CTYPE, "здесь впиши нужную локаль");
...
------------------------
ps: информация взята отсюда - perldoc perllocale
-
ondr
Это все что есть из ru...
--
ru_RU.CP1251
ru_RU.CP866
ru_RU.ISO8859-5
ru_RU.ISO_8859-5
ru_RU.KOI8-R
ru_SU.CP1251
ru_SU.CP1251.old
ru_SU.CP866
ru_SU.ISO8859-5
ru_SU.ISO_8859-5
ru_SU.KOI8-R
Пробовал и CP1251 и KOI8-R -- uc() наоборот скидывает регистр :)
-
kosm:
Пробовал и CP1251 и KOI8-R -- uc() наоборот скидывает регистр
набери в терминале команду locale
что ты используешь?
-
ondr
bash: locale: command not found
-
небось freeBSD пользуешь? Там такой фичи "locale" и вправду нету.
тебе нужно выяснить, в какой кодировке ты сидишь. и что более важно, какую кодировку ты собираешься использовать в своих скриптах. как выяснишь, сделай как я описал, а лучше прочти perldoc perllocale.
-
ondr
Ага, у хостера фря стоит. Сейчас попробую выяснить про кодировку у их хелпдеска...
А кодировка у меня везде win1251 используется.
Спасибо!
PS: Пошел читать perldoc...
-
ondr
Они ответили, что установленная локаль - KOI8-R, и установка локали ru_RU.CP1251 у них невозможна. Но как вариант, могут перенести на другую площадку, где установлена 1251.
Вопрос. Если у них будет установлена консоль 1251, то
--
use locale;
use POSIX qw/locale_h/;
setlocale(LC_CTYPE, "ru_RU.CP1251");
--
меня спасет? Т.е. все дело было в том, что у них установлена KOI?
-
kosm:
Т.е. все дело было в том, что у них установлена KOI?
Нет. Все дело в том, что у них ИМХО(!) безграмотные админы, поскольку для решения проблемы необходимо и достаточно, всего лишь наличия файлика ru_RU.CP1251 (может по другому называться), в директории /usr/share/locale (это под freeBSD).
Если на новой площадке локаль установленна, то все будет нормально. С этим вообще никаких проблем не должно быть!
-
ondr
Дык есть он (файлик ru_RU.CP1251) в той директории. Я пробовал его подключать - никаких изменений. Мож чего не так отконфигурено?
А на новой площадке, с установленой win1251, никаких танцев с бубном уже не придеться делать? Т.е. uc() будет работать как и положено без:
--
use locale;
use POSIX qw/locale_h/;
setlocale(LC_CTYPE, "ru_RU.CP1251");
--
?
СПАСИБО ЕЩЕ РАЗ ЗА ПОМОЩЬ!