ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Безопасность > *nix
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

как изменить кодировку для конкретной проги?
  #1  
Старый 28.08.2008, 14:29
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию как изменить кодировку для конкретной проги?

помню кто-то подсказывал как запустить программу, установив для неё кастомную кодировку. По типу "команда кодировка имя_программы"
Убей, не могу вспомнить как это делается.

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

  #2  
Старый 28.08.2008, 14:48
gisTy
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме:
3629857

Репутация: 504


По умолчанию

если вывод в терминал, то:
Код:
prog|iconv -t locale
а если ГУИ, то:
Код:
LANG=locale prog
вместо locale поставить нужную тебе локаль(кодировку)

Последний раз редактировалось gisTy; 28.08.2008 в 15:15..
 
Ответить с цитированием

  #3  
Старый 28.08.2008, 15:17
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

попробовал так:

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

не канает

ПС тему наверное в кодинг надо перенести
 
Ответить с цитированием

  #4  
Старый 28.08.2008, 15:21
gisTy
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме:
3629857

Репутация: 504


По умолчанию

посотри на вывод:
Код:
locale -a
там будут все названия кодировок, установленных в системе, и выбирай нужную тебе.
 
Ответить с цитированием

  #5  
Старый 29.08.2008, 07:13
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

посмотрел локали, нашёл там 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  
Старый 29.08.2008, 09:33
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

man man

Цитата:
By default, man searches for a localized manpage in a set of
locale subdirectories of each manpath(1) component.

Locale name is taken from the first of three environment
variables with a nonempty value: LC_ALL, LC_CTYPE, or LANG,
in the specified order.

If the value could not be determined, or is not a valid
locale name, then only non-localized manpage will be looked
up.

Otherwise, man will search in the following subdirectories,
in the order of precedence:

<lang>_<country>.<charset>
<lang>.<charset>
en.<charset>

For example, for ``de_DE.ISO8859-1'' locale, man will search
in the following subdirectories of the /usr/share/man manpath
component:

/usr/share/man/de_DE.ISO8859-1
/usr/share/man/de.ISO8859-1
/usr/share/man/en.ISO8859-1

Finally, if the search of localized manpage fails, it will be
looked up in the default /usr/share/man directory.
 
Ответить с цитированием

  #7  
Старый 29.08.2008, 09:42
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

у меня LANG - ru_RU.UTF-8
 
Ответить с цитированием

  #8  
Старый 29.08.2008, 10:50
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

выложи кусок вывода скрипта
 
Ответить с цитированием

  #9  
Старый 29.08.2008, 14:00
ltslashgt
Новичок
Регистрация: 14.08.2008
Сообщений: 7
Провел на форуме:
18077

Репутация: 7
По умолчанию

Цитата:
Сообщение от Дикс  
посмотрел локали, нашёл там ru_RU.utf-8

man ls | iconv -t 'ru_RU.utf-8'
неправильно делаешь, чтобы пользоваться iconv, набери
iconv --list

Цитата:
Сообщение от Дикс  
koi8r тоже не канает.

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

  #10  
Старый 08.09.2008, 01:24
0xc001d00d
Новичок
Регистрация: 11.10.2007
Сообщений: 2
Провел на форуме:
23931

Репутация: 2
По умолчанию

в консоли делаешь:
locale -a

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

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

где `my_program` это прога, которую хочешь запустить
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор новшеств в FreeBSD 7.0 zythar Мировые новости 2 28.02.2008 12:43
Взлом Unix а silveran *nix 4 21.12.2005 22:46
Основные команды командной строчки. silveran Windows 5 27.10.2005 14:45
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ