Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не правильная обработка кирилицы 
:(
    Опции темы
Гость_Vladimir
Дата 26.10.2005, 09:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Проблема в том, что не правильно обрабатываются строки кикрилицы (сравнение, преобразование регистра), в которых есть буквы от 'Р' до 'Я'.
Делаю так:
Код

echo setlocale(LC_ALL, 'ru_RU').'<br>';
$s1='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЫЭЮЯ';
echo strtolower($s1).'<br>';

получаю
Код

ru_RU
абвгдешжзийклмнопРСТУФХЦЧШЩЪЬЫЭЮЯ

Т.е. локаль устанавливается, но преобразование регистра (а также сравнение строк) работает не правильно.
Как это можно исправить?
  Вверх
PARROT
Дата 26.10.2005, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Код

setlocale(LC_ALL, "ru_RU.CP1251"); 



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Гость_Vladimir
Дата 26.10.2005, 11:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пробовал, но такая локаль не устанавливается.
Пришлось выкручиваться с помощью функции strtr
Код

$s1='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЫЭЮЯ';
$s2='абвгдеёжзийклмнопрстуфхцчшщъьыэюя';
echo strtr($s1,$s1,$s2).'<br>';

Но как-то это не хорошо smile
  Вверх
Mal Hack
Дата 26.10.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата
Пробовал, но такая локаль не устанавливается.

Все замечательно устанавливается %)

Цитата
Проблема в том, что не правильно обрабатываются строки кикрилицы (сравнение, преобразование регистра), в которых есть буквы от 'Р' до 'Я'.

А изначально они у тебя в какой колировке записаны?
PM ICQ   Вверх
Гость_Vladimir
Дата 28.10.2005, 08:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











setlocale(LC_ALL, "ru_RU.CP1251");
не устанавливалась т.к. на сервере не было такой локали, сейчас сделали. Но setlocale(LC_ALL, "ru_RU.CP1251") срабатывает почему-то не всегда, то находит эту локаль, то нет, с постоянной периодичностью: 6 раз не находит на 7-ой находит, потом опять 6 раз не находит на 7-ой находит.
Странно как-то. Может я чего-нибудь не так сделал?
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.