у php плохо c UTF8-RU?

Тема в разделе "WASM.HEAP", создана пользователем device, 4 июн 2008.

Статус темы:
Закрыта.
  1. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Написал прогу на PHP...
    Код (Text):
    1. $ar[0]='а';    $at[]="А";
    2. $ar[1]="б";    $at[]="Б";
    3. $ar[2]="в";    $at[]="В";
    4. $ar[3]="г";    $at[]="Г";
    5. $ar[4]="д";    $at[]="Д";
    6. $ar[5]="е";    $at[]="Е";
    7. $ar[]="ё" ;    $at[]="Ё";
    8. $ar[]="ж" ;    $at[]="Ж";
    9. $ar[]="з" ;    $at[]="З";
    10. $ar[]="и" ;    $at[]="И";
    11. $ar[]="й" ;    $at[]="Й";
    12. $ar[]="к" ;    $at[]="К";
    13. $ar[]="л" ;    $at[]="Л";
    14. $ar[]="м" ;    $at[]="М";
    15. $ar[]="н" ;    $at[]="Н";
    16. $ar[]='о' ;        $at[]="О";
    17. $ar[]="п" ;    $at[]="П";
    18. $ar[]="р" ;    $at[]="Р";
    19. $ar[]="с" ;    $at[]="С";
    20. $ar[]="т" ;    $at[]="Т";
    21. $ar[]="у" ;    $at[]="У";
    22. $ar[]="ф" ;    $at[]="Ф";
    23. $ar[]="х" ;    $at[]="Х";
    24. $ar[]="ц" ;    $at[]="Ц";
    25. $ar[]="ч" ;    $at[]="Ч";
    26. $ar[]="ш" ;     $at[]="Ш";
    27. $ar[]="щ" ;     $at[]="Щ";
    28. $ar[]="ы" ;     $at[]="Ы";
    29. $ar[]="ь" ;     $at[]="Ь";
    30. $ar[]="ъ" ;     $at[]="Ъ";
    31. $ar[]="э" ;     $at[]="Э";
    32. $ar[]="ю" ;     $at[]="Ю";
    33. $ar[]="я" ;     $at[]="Я";
    34.  
    35. //------------------------
    36.  
    37.     $is =   "абвгдежзийклмнопрст"    ;
    38.     $arx    =   str_split( $is )    ;
    39.  
    40.     $res    =   null            ;
    41. //-------------------------
    42.     function if_ar($str, $ar){
    43.  
    44.         $res=false;
    45.         for ($i=0; $i<count($ar); $i++){
    46.             if ($str==$ar[$i]){
    47.             $res=true; break;
    48.             }
    49.  
    50.         }
    51.         return $res;
    52.     }
    53. //-------------------------
    54.     for ($i=0; $i<count ($arx); $i++){
    55.  
    56.         if (if_ar($arx[$i], $ar)){
    57.         echo $i;
    58.         }
    59.  
    60.     }
    В общем, если в массивах и на входе использовать русские буквы, то ниче не работает, а если латиницу, то все ништяк. Почему?
     
  2. Aquila

    Aquila Самурай дзена

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    1.467
    Адрес:
    Russia, Moscow
    У PHP с UTF-8 средне.. Программа же слегка сюрреалистическая :).. А что ты вообще задумал? Сконвертировать маленькие буквы в большие? :). Конкретно в данном случае проблема в str_split - эта функция UTF-8 не понимает.
     
  3. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Тут вообще муть какая то

    echo ord ("А")."\n";
    echo ord ("Б")."\n";
    echo ord ("В")."\n";
    echo "\n";
    echo ord ("A")."\n";
    echo ord ("B")."\n";
    echo ord ("C")."\n";

    выдает результат

    208
    208
    208

    65
    66
    67
     
  4. Aquila

    Aquila Самурай дзена

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    1.467
    Адрес:
    Russia, Moscow
    Да нет, всё правильно. В общем, читай доки :).
     
Статус темы:
Закрыта.