2015-01-11 2 views
0

В настоящее время я работаю над серверной программой, обслуживающей текстовые терминалы. Предполагаемый целевой клиент - xterm. Я пытаюсь «нарисовать линии» вокруг прямоугольного сечения, похожие на оконные рамы в старых программах режима TUI. Есть, конечно, символы ASCII> 127, которые определяют эти символы рисования линии, но через telnet-соединение применимы только 7 бит, и все символы> 127 оказываются блокировкой по умолчанию на экране клиента. Я знаю о последовательностях управления VT100, которые устанавливают другие графические наборы, такие как G0, G1 и т. Д. И как их активировать через ESC) x и ESC (x, а также одиночные коды символов SI и SO. Проблема состоит в том, что ни одна из этих как представляется, имеют желаемый эффект.Как написать символы LIne Draw на терминал

Мой лучший успех был настолько далеко, чтобы отправить

ESC, «)», «0», SO

Когда я отправить данные после этого, я все еще получаю нормальные символы , Однако, как только я завершаю соединение, а программа xterm (я использую MobaXTerm) печатает сообщение deconnect, это сообщение теперь появляется в выбранном графическом наборе символов.

Что было бы лучшим способом переключить терминал в графический режим, а затем нарисовать соответствующие графические символы?

ответ

0

Возможно, вы не можете: как я помню, MobyXterm основан на PuTTY, разработчики которого решили не поддерживать линейный чертеж VT100 при кодировании UTF-8. Библиотека ncurses имеет обходной путь для этого обрыва, когда задана переменная окружения NCURSES_NO_UTF8_ACS, но это не поможет с прямой записью управляющих последовательностей, которые вы делаете.

+0

Спасибо, что объяснят мои проблемы. –

+0

Библиотека Ncurses обрабатывает только прямой вывод в окно локальной консоли, верно? Или мое приложение может принимать входящие соединения TCP/IP, а затем обслуживать несколько клиентов при использовании NCurses? –

+0

ncurses знает только, что он имеет потоки ввода и вывода, которые действуют как соединения с терминалом. Так что это более общее, чем это. –

 Смежные вопросы

  • Нет связанных вопросов^_^