За последние 24 часа нас посетили 72617 программистов и 3032 робота. Сейчас ищут 1470 программистов ...

Беда с кодировкой

Тема в разделе "PHP для новичков", создана пользователем Dron-Boy, 10 фев 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Короче вот есть
    PHP:
    1. $city = 'Киев';
    когда делаю вардамп пишет 8 символов строка
    PHP:
    1. var_dump($city);
    разбиваю строку на масив буков выдает след
    Array ( [0] => Ð [1] => œ [2] => Ð [3] => ¾ [4] => Ñ [5] =>  [6] => Ð [7] => º [8] => Ð [9] => ² [10] => Ð [11] => ° )
    Когда просто пытаюсь обртится к символу
    PHP:
    1. $city[2]
    то тоже выводит кракозябры. В чем проблема?
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Проблема в том что строка это не последовательность букв,а последовательность байт.Эта тема недавно поднималась на форуме.В твоем случае:
    PHP:
    1. $city = 'Киев';
    2. $strLen = mb_strlen($city);
    3. for ($i = 0; $i < $strLen; $i++)
    4. {
    5.     $arr[] = mb_substr($city, $i, 1);
    6. }
    7. print_r($arr);
    Более подробно
    https://php.ru/forum/threads/problema-to-li-s-kodirovkoj-to-li-ne-znaju-s-chem-help.61860/
     
  3. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    всеровно бред Array ( [0] => Ð [1] => š [2] => Ð [3] => ¸ [4] => Ð [5] => µ [6] => Ð [7] => ² )
    а английский норм все
     
  4. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    решил так
    PHP:
    1. $city = substr($city,-2);