LINUX.ORG.RU

iotop Проблемы с кириллицей

 ,


0

1

Уже давно имею нерешенную проблему, связанную с падением iotop (утилита для мониторинга загрузки дисков разными процессами) при наличии кириллицы в команде запуска приложение (которые списком выводятся). Кто-нибудь уже поборол данную проблему?

sys-process/iotop
Available versions: 0.6 {PYTHON_TARGETS=«pypy2_0 python2_6 python2_7 python3_2 python3_3»}
Installed versions: 0.5-r1(10:07:39 PM 02/08/2013)(PYTHON_TARGETS=«python2_7 python3_2 -pypy1_9 -pypy2_0 -python2_6 -python3_1 -python3_3»)
Homepage: http://guichaz.free.fr/iotop/
Description: Top-like UI used to show which process is using the I/O



Собственно лог:
Traceback (most recent call last):
File «/usr/sbin/iotop-python2.7», line 16, in <module>
main()
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 605, in main
main_loop()
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 595, in <lambda>
main_loop = lambda: run_iotop(options)
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 493, in run_iotop
return curses.wrapper(run_iotop_window, options)
File «/usr/lib64/python2.7/curses/wrapper.py», line 43, in wrapper
return func(stdscr, *args, **kwds)
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 486, in run_iotop_window
ui.run()
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 155, in run
self.process_list.duration)
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 472, in refresh_display
self.win.addstr(i + len(summary) + 1, 0, lines)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 90-93: ordinal not in range(128)

☆☆☆

Последнее исправление: cetjs2 (всего исправлений: 1)

Видимо, line 472, in refresh_display нужно превратить из:

self.win.addstr(i + len(summary) + 1, 0, lines)
В
self.win.addstr(i + len(summary) + 1, 0, lines.decode('utf8'))
наверное

ValdikSS ★★★★★
()
Ответ на: комментарий от Deleted

UTF8 и ru_RU.UTF-8, а что - есть варианты? И на убунту, да федоре оно тоже падает.

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от ValdikSS

Traceback (most recent call last):
File «/usr/sbin/iotop-python2.7», line 16, in <module>
main()
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 605, in main
main_loop()
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 595, in <lambda>
main_loop = lambda: run_iotop(options)
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 493, in run_iotop
return curses.wrapper(run_iotop_window, options)
File «/usr/lib64/python2.7/curses/wrapper.py», line 43, in wrapper
return func(stdscr, *args, **kwds)
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 486, in run_iotop_window
ui.run()
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 155, in run
self.process_list.duration)
File «/usr/lib64/python2.7/site-packages/iotop/ui.py», line 472, in refresh_display
self.win.addstr(i + len(summary) + 1, 0, lines, lines.decode('utf8'))
AttributeError: 'list' object has no attribute 'decode'

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от Deleted

Ой, они же обычно ничего не правят.

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от ValdikSS

Проблема решена заменой 472 строки на:
self.win.addstr(i + len(summary) + 1, 0, lines.encode('utf8', 'replace'))

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от Deleted

Решено. И проблема не в кириллице, а в каких-то спец символах.

ktulhu666 ☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.