“хвост-f | iconv-fsjis” ничего не производит

По-видимому, с этой моделью, parport_pc модуль заставляет udev зависать [1]. Вам, возможно, придется поместить в черный список этот модуль для успешной установки Arch.

Добавление disablemodules=parport_pc к Вашей строке ядра [2] должен позволить udev продолжаться.

[1] http://www.mail-archive.com/arch-general@archlinux.org/msg11658.html

[2] Когда ISO загружается, и Вы видите меню личинки, нажимаете e, чтобы отредактировать, затем добавить что строка в конец строки ядра. Нажмите Enter затем b для начальной загрузки.

14
13.04.2017, 15:36
2 ответа

(возьмите это с щепоткой соли) Насколько я помню, проблема заключается в том, как libiconv работы. Многобайтовой кодировке нужен конечный автомат для декодирования их, и libiconv предпочитает получать все символы, таким образом, Вы не можете только дать ему половину символа в одном вызове функции и другую половину в следующем.

Я могу думать о еще двух решениях, каждый - хороший внеполосный метод, другой внутриполосный взлом.

Измените Эмулятор терминала, кодирующий (внеполосный): нужно изменить кодировку символов в Вашем эмуляторе терминала, таким образом, его собственное кодирование является Shift JIS. Я просто проверил konsole, и поддержки это. Из меню, View→Character encoding→Japenese→sjis. Вы можете затем просто tail -f файл, и konsole будет заботиться о декодировании многобайтовых символов и соответствии им до глифов шрифтов.

Транскодируйте терминал, кодирующий на лету (внутриполосный; лучше всего): любезность Gilles, который напомнил мне о luit после очень долгого времени. Использовать luit, который должен был идти с Вашим распределением Xorg (на Debian, это - пакет x11-utils). Используйте его как это:

$ luit -encoding SJIS -- tail -f x

Это будет делать терминальный транскод SJIS к/от Вашему терминальному кодированию и работать tail -f x. Оборотная сторона luit это, это не поддерживает богатство кодировки, поддерживаемой libiconv. Позитивный аспект, это доступно почти везде.

Транскодируйте терминал, кодирующий на лету (внутриполосный; взлом): ttyconv взлом, который я записал много лет назад (первоначально в C, позже восстановленном в Python), который использует libiconv транскодировать терминал ввод-вывод. Это порождает новый псевдотерминал и (a) транскодирует символы, которые Вы вводите от своего локального кодирования в удаленное кодирование и (b) транскодирует символы, которые Вы получаете от удаленного кодирования до Вашего локального кодирования. Я использовал его, чтобы говорить с серверами, которые использовали кодировку, не поддерживаемую стандартными терминалами Linux. Обратите внимание на то, что вся удаленная кодировка, с которой я протестировал его, была однобайтовой кодировкой, таким образом, я не могу гарантировать, что это работало бы на Shift JIS. Я не часто нахожу, что вызов использует его в эти дни с большинством систем, переключающихся на Unicode.

Это - то, как Вы использовали бы его:

$ ttyconv -rsjis -- tail -f x

Оборотная сторона ttyconv это, я записал это, никто не использует его, но меня, это, вероятно, полно ошибок. Я выделяюсь в этом. Позитивный аспект - то, что это использует libiconv, таким образом, если Ваше кодирование необычно, это - Ваш лучший выбор. Наконец количество, ttyconv --list поддержки 100 кодировок.

11
27.01.2020, 19:51
  • 1
    Потрясающий, спасибо. внеполосный не работал на меня (терминал гнома, хотя он действительно позволяет Вам изменять кодирование), но ttyconv работает как очарование. –  Eugene Beresovsky 05.04.2012, 04:23
  • 2
    В эти дни, существует luit, часть стандартного комплекта утилиты X11, который подобен Вашему ttyconv. –  Gilles 'SO- stop being evil' 05.04.2012, 04:31
  • 3
    @Gilles luit подобно, за исключением того, что это работает намного лучше, чем мой.;) Спасибо! Поэтому я прекратил использовать во-первых. За эти 12 лет, так как мне удалось забыть даже название команды и я искал его с тех пор. –  Alexios 05.04.2012, 12:09
  • 4
    @Gilles luit работы для меня также. Почему Вы не делаете это 'официальным' ответом? Это было частью моей установки (debian) и таким образом является самым легким использовать для меня. сканирование вирусного сканера –  Eugene Beresovsky 09.04.2012, 04:12
  • 5
    я обновил ответ для включения luit как лучший выбор для SJIS. К сожалению, кажется, что это не поддерживает каждое кодирование libiconv делает. Похож я все еще должен использовать свое собственное решение в моих собственных сюрреалистических целях. :) –  Alexios 09.04.2012, 12:01

Подобный ttyconv существует также tconv, записанный в C Rich Felker.

См.: Ре: призыв к фиксации aterm/rxvt/etc...

1
27.01.2020, 19:51

Теги

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