Заставить 256-цветных символов рисования линий и линий работать в PuTTY

17785
Swiss

У меня проблемы с настройкой PuTTY с Ubuntu.

Я пытаюсь заставить линейные символы работать в aptitude, а также поддерживать 256 цветов, но могу получить только один или другой.

  • Ubuntu Config
    • Использование 64-битной Ubuntu
    • Тип терминала xterm-256color или putty-256color дает 256-цветные, но некорректные символы строки.
    • Тип терминала linux выдает правильные линии по способности, но только 16 цветов.
  • PuTTY Config
    • Использование шрифта с символами Юникода. (DejaVu Sans Mono)
    • Предполагается, что полученные данные находятся в UTF-8.
    • Установите для использования кодовых точек рисования линий Unicode.

Выход из locale:

LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 
31

2 ответа на вопрос

39
grawity

The problem is that PuTTY in UTF-8 mode ignores1 VT100 "Alternate character set" commands, and ncurses attempts to use the "graphical" character set for drawing the GUI. (The box drawing characters are in the same positions as klmqx would normally be.)

export NCURSES_NO_UTF8_ACS=1 to your environment, it should fix the problem by telling ncurses to always use Unicode box drawing characters when a UTF-8 locale is selected.

1 There is a PuTTY wishlist entry for this, along with explanation why the current behavior is better.

Update (2018-05-12): It seems that this combination will be supported in PuTTY 0.71.

Это интересно. Я просто всегда использовал Lucida Console, потому что рисование линий всегда работало в режиме UTF-8. Теперь я могу использовать гораздо лучшие шрифты. Благодарю. :) Ariel 13 лет назад 0
Я просто хочу отметить, что запуск программы, которая преобразует альтернативный набор символов в UTF-8, также решает проблему. Я нашел это по ссылке, которую вы предоставили. Лучший пример программы - экран. Swiss 13 лет назад 8
not to dig up old posts, but [KiTTY](http://kitty.9bis.net/) - a PuTTY fork - provides a checkbox to "Allow ACS line drawing in UTF" (new/current session settings->Window->Translation) which seems to work well with apps like aptitude. overprescribed 8 лет назад 2
@swiss: не ** `screen` ** выполняет преобразование, а **` ncurses` **. Thomas Dickey 8 лет назад 1
Я работаю в Putty и использую Zsh. У меня проблема, аналогичная OP, в том, что в VIM некоторые символы, такие как стрелка в NERDtree, не отображаются. Когда я делаю "export NCURSES_NO_UTF8_ACS = 1" и снова открываю VIM, он не делает ничего другого. Стрелки по-прежнему не отображаются. Есть идеи, что происходит? alpha_989 6 лет назад 0
@ alpha_989: Это совсем не та проблема, так как стрелки не были частью ACS. Они уже чисто UTF-8. Что вы видите на их месте? grawity 6 лет назад 0
@ Grawity, если я на удаленном сервере, я вижу это: https://imgur.com/R0T4hO5 alpha_989 6 лет назад 0
Я вижу стрелки, как и ожидалось в NERDtree. Однако, если я вхожу в систему через ssh, я вижу, что стрелки заменяются полями. https://imgur.com/cfejBDi alpha_989 6 лет назад 0
Я перепробовал все решения, опубликованные в этой теме, но это не помогло: https://serverfault.com/questions/475925/how-to-fix-putty-showing-garbled-characters. Но, как вы указали, возможно, проблема не в этом. Любая идея, как отладить это, или коренная причина этой проблемы? alpha_989 6 лет назад 0
Хорошо .. Я решил это сам. На тот случай, если у кого-то есть такая же проблема, вот решение: https://github.com/scrooloose/nerdtree/issues/522#issuecomment-163673920 Вы также можете использовать шрифт Consolas по умолчанию alpha_989 6 лет назад 0
3
ismail

Это теперь реализовано как опция в PuTTY git master .

Похожие вопросы