2016-11-09 2 views
0

Я не могу программно создать непрерывный символ вертикальной линии (|) при работе в сеансе терминала на основе текста. Я пробовал различные символы Unicode - U + 2502, U + 007C, U + 01C0, U + 2223, U + 2758 - безрезультатно. Я думал, что это можно решить, изменив шрифт, используемый терминальной программой, но это было неудачно.Неровный символ вертикальной линии - ncurses против Java

Вот кикер ... ncurses может произвести этого персонажа! Сравнить vert-by-curses и vert-by-java

мое окружение ... Mac OS X (El Capitan), iTerm2, Java 1.8 (сборка 1.8.0_111-b14)

Так что мой вопрос заключается в следующем: как я могу генерировать непрерывная вертикальная линия (в тексте) из Java?

+0

«... безрезультатно». Что происходит, когда вы печатаете эти персонажи? – VGR

+0

Я, конечно, получаю вертикальную полосу, но ни одна из них не является «полной высотой ячейки персонажа», то есть одна поверх другой визуально нарушена. – LiamF

+0

Примеры снимков непригодны для использования. Скопируйте и вставьте текст из окна терминала, чтобы показать [mcve]. Может быть, есть разные шрифты? Например, в Notepad ++ вертикальные линии непрерывны с использованием шрифта «DejaVu Sans Mono», но появляются сломанные с использованием шрифта Courier New'. Протестированы следующие строки шаблонов: '┌────────,' │ | │H│ | │', '├─────┤',' │ | │H│ | │', '└─── ──┘'. – JosefZ

ответ

0

ncurses uses U+2502 для терминалов, которые не поддерживают линейную графику VT100 при использовании UTF-8 (см. Обсуждение NCURSES_NO_UTF8_ACS). iTerm2 не является одним из них.

Другие терминалы поддерживают линейный чертеж VT100 с UTF-8 и (xterm for instance) могут рисуют символы, если шрифт их не предоставляет. При использовании линейного чертежа VT100 приложение переключается на альтернативный набор символов —, а терминал определяет, какой символ (или рисунок) использовать. Вы можете отправить escape-последовательность с помощью Java, но есть и те другие терминалы, результаты которых будут плохими.

ASCII-вертикальная полоса U+007Cможет дать полезную линию, не может (есть сообщения об ошибках здесь и там, упоминающих отказ нарисовать полную высоту, или жалобы, что брусок имеет разрыв в ней).

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