За последние 24 часа нас посетили 17242 программиста и 1688 роботов. Сейчас ищут 1274 программиста ...

кодировка в выводе scandir

Тема в разделе "PHP для новичков", создана пользователем Versoul, 24 май 2009.

  1. Versoul

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

    С нами с:
    20 окт 2008
    Сообщения:
    41
    Симпатии:
    0
    пользуясь функцией scandir заметил, что русские имена файлов выводятся аброкадаброй. это устраняется если прописать в самом хтмл charset=utf-8 сервер локальный на моем компе под ос убунту линукс. под виндой по моему выводило сразу в вин1251 то есть не пойму, сервера на разных ос работают с разными кодировками. например, если я захочу чтоб вся страница была в вин1251 то пропишу в charset вин1251 и вывод скандира перекодирую например так $b = mb_convert_encoding($b,'cp1251','utf8'); то под линуксом у меня все будет работать,но если запустить этот же скрипт под сервером на винде он работать не будет? что-то я запутался и не понимаю,прошу подсказать
     
  2. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    В линуксе давно утф используется, в винде сп1251, чего не понятно?
     
  3. Versoul

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

    С нами с:
    20 окт 2008
    Сообщения:
    41
    Симпатии:
    0
    непонятно как сделать чтоб скрипт норм работал и под линем и под окнами
     
  4. Versoul

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

    С нами с:
    20 окт 2008
    Сообщения:
    41
    Симпатии:
    0
    если сделаю энкод из ютф8 в вин1251 то будет норм выводит на данный момент. а вот если его запустить под виндой и вдруг функция scandir или readdir вернет текст не в ютф8 а в вин1251,то скрипт упадет?!
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. getenv('OS');
    4.  
    5. ?>
    А вообще, каталоги не должны иметь русские названия ИМХО.
     
  6. Нет. Надо проверять
    PHP:
    1. <?php
    2. var_dump(setlocale(LC_ALL,0));
    3. ?>
     
  7. Ориентроватся надо или на LC_CTYPE скорее всего, ЕМНИП.
     
  8. Versoul

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

    С нами с:
    20 окт 2008
    Сообщения:
    41
    Симпатии:
    0
    ну как вы обычно делаете? ведь у всех так же как у меня?самый простой способ ставить чарсет в ютф8 но будет ли правильно отображаться в виндовском сервере?
     
  9. Versoul

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

    С нами с:
    20 окт 2008
    Сообщения:
    41
    Симпатии:
    0
    запустил скрипт под виндой выдало,что не знает функцию конвертирования кодировок. после убирания ее заработало на ура,то есть функция scandir под вин возвращает рус имена в вин1251 а линь в ютф8 как сделать универсальной?