Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
как изменить кодировку для конкретной проги? |

28.08.2008, 14:29
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
как изменить кодировку для конкретной проги?
помню кто-то подсказывал как запустить программу, установив для неё кастомную кодировку. По типу "команда кодировка имя_программы"
Убей, не могу вспомнить как это делается.
Проблема в следующем: написал пхп скрипт, который вызывает через system - man с параметром и вывод выдает на страницу. Но там полно нечитабельных символов. Использую utf-8. Как сделать ответ системы читабельным?
|
|
|

28.08.2008, 14:48
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
если вывод в терминал, то:
Код:
prog|iconv -t locale
а если ГУИ, то: вместо locale поставить нужную тебе локаль(кодировку)
Последний раз редактировалось gisTy; 28.08.2008 в 15:15..
|
|
|

28.08.2008, 15:17
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
попробовал так:
system("man " . $_GET['command'] . " | iconv -cst UTF-8");
не канает
ПС тему наверное в кодинг надо перенести
|
|
|

28.08.2008, 15:21
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
посотри на вывод: там будут все названия кодировок, установленных в системе, и выбирай нужную тебе.
|
|
|

29.08.2008, 07:13
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
посмотрел локали, нашёл там ru_RU.utf-8
PHP код:
man ls | iconv -t 'ru_RU.utf-8'
iconv: преобразование в `ru_RU.utf-8' не поддерживается
Попробуйте `iconv --help' или `iconv --usage' для
получения более подробного описания.
Ошибка исполнения команды форматирования или просмотра.
Системная команда (cd /usr/share/man/ru && (echo ".pl 11i"; /usr/bin/gunzip -c '/usr/share/man/ru/man1/ls.1.gz') | /usr/bin/gtbl | /usr/bin/nroff -c -mandoc 2>/dev/null | /usr/bin/less -is) завершилась с кодом 36096.
Ошибка исполнения команды форматирования или просмотра.
Системная команда (cd /usr/share/man && (echo ".pl 11i"; /usr/bin/gunzip -c '/usr/share/man/man1/ls.1.gz') | /usr/bin/gtbl | /usr/bin/nroff -c -mandoc 2>/dev/null | /usr/bin/less -is) завершилась с кодом 36096.
Ничего про ls в руководстве нет
koi8r тоже не канает.
как узнать кодировку в который вываливается man?
|
|
|

29.08.2008, 09:33
|
|
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.
|
|
|

29.08.2008, 09:42
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
у меня LANG - ru_RU.UTF-8
|
|
|

29.08.2008, 10:50
|
|
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме: 2127116
Репутация:
383
|
|
выложи кусок вывода скрипта
|
|
|

29.08.2008, 14:00
|
|
Новичок
Регистрация: 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
|
|
|

08.09.2008, 01:24
|
|
Новичок
Регистрация: 11.10.2007
Сообщений: 2
Провел на форуме: 23931
Репутация:
2
|
|
в консоли делаешь:
locale -a
и смотришь, какая кодировка тебе нужна. например ru_RU.CP1251
потом снова в консоли пишешь:
LANG="ru_RU.CP1251" my_program
где `my_program` это прога, которую хочешь запустить
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|