Невозможно отобразить 8 -битных символов в xterm в Ubuntu 18.04

Некоторые быстрые поиски на основе смутных воспоминаний:

HTB является гибким. По умолчанию я думаю, что вы получаете FIFO для каждого листового класса, возможно, он использует конфигурацию по умолчанию для FIFO. Однако вы также можете, например. используйте PFIFO или FQ _CODEL для конечного класса. См., например. «необязательно прикрепите дисциплины очередей к листовым классам» здесь:http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm

Думаю, вы их увидите, если побежите tc qdisc show.

«Эта «прямая» очередь используется только в том случае, если один из ваших фильтров явно нацелен на «0» classid htb qdisc»https://lists.bufferbloat.net/pipermail/cerowrt-devel/2013-June/006507.html. Прямая очередь не формируется. Судя по всему, длину прямой очереди теперь можно контролировать, хотя я не знаю, как (и поддерживает ли это )tc.https://patchwork.ozlabs.org/patch/225546/

Я бы не сказал, что есть отдельный "планировщик пакетов". Планировщик пакетов представляет собой QDisc (, хотяman tc-tbfописывает себя как «никогда не планирующий трафик»; это означает, что он никогда не -приказывает ему ).

1
13.07.2019, 01:35
1 ответ

Местные настройки вашей оболочки являются частью проблемы:

  • Set locale to a UTF-8 flavor.

  • Set to a UTF-8 encoding (eg. en_US.UTF-8).

Это указывает приложениям, работающим внутри xterm , использовать UTF -8. Кодировка UTF -8 использует коды в диапазоне 0x80 -0xff для построения многобайтовых символов -, которые это не то, что вы хотите.

Локаль, действующая призапускеxterm, влияет на то, каконинтерпретирует одни и те же коды. Если эта локаль сообщает xterm, что она использует UTF -8, xterm будет использовать кодировку UTF -8 (, см.локаль , ресурс ), и в зависимости от настроек ресурса может не разрешить вы, чтобы выключить его. (Это особенно проблема при запуске xterm в среде рабочего стола, где вашязык системыиспользует UTF -8, например,en_US.UTF-8). Вы можете увидеть, что делает xterm, используя элемент управления -правое -меню мыши :есть запись«UTF -8 Encoding» , которая проверяется, когда ожидает UTF -8, а отображается серым цветом -и , когда вы не можете его изменить.

Если при инициализации вашей оболочки -используются настройки локали системы, то этого должно быть достаточно, чтобы сделать это из команды -строки:

LC_ALL=en_US LANG=en-US xterm

Вместо UTF -8 вы, кажется, спрашиваете о ISO -8859 -1 и связанных кодировках. Это то, к чему обычно относятся имена локалей без суффикса ".UTF-8".

Вот скриншот из vttest , иллюстрирующий ISO -8859 -1 (то, что вы могли ожидать, для приложения, которое вы пытаетесь использовать):

vttest with ISO-8859-1

и вот что будет показано с кодировкой UTF -8

vttest with UTF-8 encoding

Библиотека ncurses проверяет локаль (, которую вызывающее приложение должно было инициализировать ), и обнаруживает, что эти одиночные байты в 0x80 -0xff не образуют полного многобайтового UTF -8, и показывает пробелы.Но если ваши региональные настройки (и терминал )установлены одинаково, вы увидите ожидаемые символы.


С другой стороны, в вашем вопросе упоминается DEC Supplemental . Это отличается, потому что он будет полагаться на поддержку Unicode в xterm (для использования всех доступных символов в национальных наборах замещающих символов). Латинский -1 отображается как 1 -1 в Unicode, а DEC Supplemental (, который очень похож на латинский -1 ), — нет.

NRCS (Национальные замещающие наборы символов )предоставляются как режим в xterm. (Исходные аппаратные терминалы использовали настройку выбор ). Если ваше приложение на самом деле использует DEC Supplemental (, который очень похож на латиницу -1 ), вы можете увидеть что-то вроде этого (с vttest, выделяющим места, где он не соответствует латинице -1):

vttest with DEC Supplemental

или он может снова использовать дополнительную графику DEC (, аналогичную):

vttest with DEC Supplemental Graphic

В любом случае, xterm может сделать это (с включенной UTF -8 ). Однако с очень старыми версиями, распространяемыми Ubuntu, вам, возможно, придется компилировать свои собственные программы. Но в контексте вопроса кажется, что вы на самом деле используете латиницу -1, а не эти старые до -стандартные наборы символов.

0
28.01.2020, 00:06

Теги

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