За последние 24 часа нас посетили 16760 программистов и 1641 робот. Сейчас ищет 841 программист ...

Проблема с кодировкой (консоль Ubuntu)

Тема в разделе "Прочие вопросы по PHP", создана пользователем hurrdurrrderp, 2 сен 2014.

  1. hurrdurrrderp

    hurrdurrrderp Новичок

    С нами с:
    2 сен 2014
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте, я пытаюсь вывести в браузер результат выполнения команды 'dir' с помощью следующего кода:
    Код (Text):
    1.  
    2. echo "<pre>";
    3. echo iconv('utf-8', 'windows-1251', `dir`);
    4. echo "</pre>";
    Однако, на экране по-прежнему что-то такое - "\320\221\320\265\320\267\321\213\320\274\321\217\320\275\320\275\321\213\320\271\" - вместо кириллицы. Тоже самое получается и просто при echo `dir`. Как мне решить эту проблему?
     
  2. dcc0

    dcc0 Активный пользователь

    С нами с:
    27 июн 2014
    Сообщения:
    217
    Симпатии:
    4
    В PHP есть scandir
    http://php.ru/manual/function.scandir.html
    Что будет если так:
    Код (Text):
    1. <?PHP
    2. $arr = (scandir('.'));
    3. foreach($arr as $v) {
    4. echo iconv('utf-8', 'windows-1251',  $v);
    5.  
    6. }
    7. ?>
    И конечно вопрос, какая кодировка установлена в браузере? Какая кодировка в метатегах?
    Если вы работаете под Убунту, то, вероятно, по умолчанию в браузере кодировка utf-8, а вы меняете с utf-8
    на cp1251.

    Добавлено спустя 52 минуты 35 секунд:
    И как-то непонятно - что такое `dir`
    Внешние команды выполняются через system()

    А понял.
     
  3. hurrdurrrderp

    hurrdurrrderp Новичок

    С нами с:
    2 сен 2014
    Сообщения:
    2
    Симпатии:
    0
    Спасибо за ответ, я разобрался, отвечу на случай, если кто-то столкнётся с тем же. Почему-то dir по-прежнему выводит набор кодов символов, а вот ls работает правильно. Установил кодировку utf-8 в метатегах, и вся кириллица стала отображаться правильно без iconv.