Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Кириллица в рег. выражениях


Автор: sidd 10.10.2010, 18:58
Если написать диапазон [а-я], то работает частично. Какие-то буквы пропускает, а какие-то нет.
У меня на компе локаль en_US.UTF-8. В php.ini тоже utf-8 по умолчанию стоит.
Вот написал такой скрипт:
Код

<?php

  setlocale(LC_ALL, "uk_UA.UTF-8");
  for ($i = 192; $i < 192+65; $i++) echo chr($i) . "<br>";

?> 

Выведенные буквы видны, только если в браузере поставить cp1251. Без setlocale() то же самое.
Может, оно из-за этого не работает? Не должно же, по идее, выводить в cp1251. Помогите, пожалуйста, разобраться.



Автор: bars80080 10.10.2010, 21:15
а как у вас выглядит регулярное выражение? модификатор u есть?
и полный диапазон обычно обозначается как а-яА-ЯёЁ. хотя это вроде для cp1251

Автор: ksnk 10.10.2010, 21:31
Цитата(sidd @  10.10.2010,  18:58 Найти цитируемый пост)
echo chr($i)

а кто вообще говорил, что такая конструкция выведет символ в юникоде? Юникод с русскими буквами - это по крайней мере два символа ...

Автор: sergunik 23.11.2010, 18:19
Я использую модификатор u тогда все работает

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)