как изменить кодировку для конкретной проги?

Discussion in 'Безопасность и Анонимность' started by Дикс, 28 Aug 2008.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    помню кто-то подсказывал как запустить программу, установив для неё кастомную кодировку. По типу "команда кодировка имя_программы"
    Убей, не могу вспомнить как это делается.

    Проблема в следующем: написал пхп скрипт, который вызывает через system - man с параметром и вывод выдает на страницу. Но там полно нечитабельных символов. Использую utf-8. Как сделать ответ системы читабельным?
     
  2. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    если вывод в терминал, то:
    Code:
    prog|iconv -t locale
    а если ГУИ, то:
    Code:
    LANG=locale prog
    вместо locale поставить нужную тебе локаль(кодировку)
     
    #2 gisTy, 28 Aug 2008
    Last edited: 28 Aug 2008
    1 person likes this.
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    попробовал так:

    system("man " . $_GET['command'] . " | iconv -cst UTF-8");

    не канает

    ПС тему наверное в кодинг надо перенести
     
  4. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    посотри на вывод:
    Code:
    locale -a
    там будут все названия кодировок, установленных в системе, и выбирай нужную тебе.
     
  5. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    посмотрел локали, нашёл там ru_RU.utf-8

    PHP:
    man ls iconv -'ru_RU.utf-8'
    iconvпреобразование в `ru_RU.utf-8' не поддерживается
    Попробуйте 
    `iconv --help' или `iconv --usage' для
    получения более подробного описания
    .
    Ошибка исполнения команды форматирования или просмотра.
    Системная команда (cd /usr/share/man/ru && (echo ".pl 11i"; /usr/bin/gunzip -'/usr/share/man/ru/man1/ls.1.gz') | /usr/bin/gtbl | /usr/bin/nroff --mandoc 2>/dev/null | /usr/bin/less -isзавершилась с кодом 36096.
    Ошибка исполнения команды форматирования или просмотра
    .
    Системная команда (cd /usr/share/man && (echo ".pl 11i"; /usr/bin/gunzip -'/usr/share/man/man1/ls.1.gz') | /usr/bin/gtbl | /usr/bin/nroff --mandoc 2>/dev/null | /usr/bin/less -isзавершилась с кодом 36096.
    Ничего про ls в руководстве нет
    koi8r тоже не канает.

    как узнать кодировку в который вываливается man?
     
  6. neval

    neval Elder - Старейшина

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23
    man man

     
  7. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    у меня LANG - ru_RU.UTF-8
     
  8. neval

    neval Elder - Старейшина

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23
    выложи кусок вывода скрипта
     
  9. ltslashgt

    ltslashgt New Member

    Joined:
    14 Aug 2008
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    неправильно делаешь, чтобы пользоваться iconv, набери
    iconv --list

    Если на вид не можешь отличать, в konsole Настройка->Кодировка ставишь сначала одну потом в этой же konsole делаешь man свой, если неправильно ставишь другую кодировку и опять делаешь man
    то есть после выключения этой konsole кодировка примет старое положение, т.к. ты ставишь значения кодировки не по-умолчанию а на один сеанс
    обычно это либо utf либо cp1251 либо koi8-r
     
  10. 0xc001d00d

    0xc001d00d New Member

    Joined:
    11 Oct 2007
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    в консоли делаешь:
    locale -a

    и смотришь, какая кодировка тебе нужна. например ru_RU.CP1251

    потом снова в консоли пишешь:
    LANG="ru_RU.CP1251" my_program

    где `my_program` это прога, которую хочешь запустить
     
  11. ++Norton++

    ++Norton++ Elder - Старейшина

    Joined:
    20 Nov 2006
    Messages:
    167
    Likes Received:
    39
    Reputations:
    0
    На крайний случай можно будет сменить кодировку страницы. А это будет скорее всего либо koi-8 либо utf-8