mb_strtolower не все буквы преобразовывает

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 10 июн 2011.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Здравствуйте.
    Функция mb_strtolower не преобразовывает в нижний регистр буквы Я,Ч.
    strtolower вообще русские буквы не преобразовывает.
    Как исправить ошибку?
     
  2. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    А если так попробовать ?
    то есть с указанием кодировки входного текста

    PHP:
    <?php 

    mb_strtolower
    ($r'Windows-1251');
    mb_convert_case($rMB_CASE_LOWER"Windows-1251");

    ?>
     
    LEXAlForpostl нравится это.
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    strtolower будет работать только с алфавитом указанный в локале операционной системы, можно настроить для скрита нужную локаль через setlocale(), или использовать мультибайтовые функции mb_
    PHP:
    <?
    //UTF-8
    mb_internal_encoding("UTF-8");
    echo 
    mb_strtolower("ЯЧ");
    echo 
    mb_strtolower("ЯЧ");
    echo 
    mb_substr("ЯЧ",0,1);
    echo 
    mb_strlen("ЯЧ");
    //Windows-1251
    mb_internal_encoding("Windows-1251");
    echo 
    mb_strtolower("ЯЧ");
    ?>