|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Constantin Stefanov 2:5020/400 10 Feb 2004 14:07:47 To : Igor Froloff Subject : Re: Объясните мне, что за фигня творится в во фре с локалью. -------------------------------------------------------------------------------- Igor Froloff wrote: >>[а-я]. Ессно, в PHP я честно устанавливал локаль ru_RU.KOI8-R. Сначала я >>думал, что глючит PHP. Hо затем я посмотрел LC_COLLATE и LC_CTYPE из моей >>локали и обалдел. В этих файлах указана следующая последователдьность букв >>между 'а' и 'я': абцдефгхийклмнопя. И PHP-шная функция ereg отрабатывала >>_полностью_ в соответсвие с этой последовательностью - под определение [а-я] >>попадала каждая из перечисленных русских букв и ни одна другая. > > Все нормально. В таблице КОИ8 первая буква русского алфавита "ю", > последняя "ъ". Дело в том что эта таблица была сделана фактически > транслитом, и какую локаль не поставь будет все равно так, пока вся > система будет сидеть на КОИ8. Так что интервал должен выглядеть [ю-ъ]. > :) Чего-то у вас нелады какие-то с локалью странные. > uname -r 4.9-RELEASE-p1 > setenv | grep LANG LANG=ru_RU.KOI8-R > echo ю | egrep '[а-я]' ю > echo ъ | egrep '[а-я]' ъ > echo a | egrep '[а-я]' > echo z | egrep '[а-я]' >>Есть ли в таком LC_COLLATION какой-нибудь неведомый мне высший смысл, или >>это просто рядовая лажа от разработчиков операционки? Если второе (к чему я >>склоняюсь, ибо не верю в "высшие смыслы"), то где мне взять нормальные >>LC_COLLATION и LC_CTYPE для локали ru_RU.KOI8-R? А откуда ты этот LC_COLLATION взял и чем в него смотрел? Я посмотрел исходник для своего - там порядок правильный (точнее, у меня файл называется LC_COLLATE). > Эту лажу сделали наши соотечественники, которые в свое время двигали > компьютеризацию в нашей стране. С точки зрения русского алфавита КОИ8 > и CP866 являются "неправильными". Hу сами кодировки - да, неправильные. А для исправления этого как раз и служит LC_COLLATE и LC_CTYPE. С ними все правильно работает (см. пример выше). -- Константин Стефанов --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/65777ad56079.html, оценка из 5, голосов 10
|