Intereting Posts
Ошибка rsync: значение времени файла, усеченного на приемнике Почему я получаю статус: Неизвестная работа в сервисе? Как удалить оба дубликата из файла на основе первых двух столбцов CentOS 7 Нет пакета … доступно В чем разница в «поиске yum» и «yum search all»? Chromebook Crouton Debian xfce4 – Невозможно изменить язык! Имена названий Guake по умолчанию Как создать tar-файл gnu, который может быть извлечен с помощью соляристой смолы Каковы некоторые общие инструменты для обнаружения вторжений? Почему использование rev, когда ваш пейджер пользователя терпит неудачу, когда он снова переводит его через rev? Chrome: размер шрифта вкладок, панель закладок и т. Д. Можно ли изменить значения приоритета / симпатии для доступа приложения к NIC, отдавая приоритет пропускной способности? Почему VNC не показывает фактический удаленный рабочий стол Второй монитор обнаружил, но не принял сигнал? Разрешения / etc / crontab

Использование символов UTF-8 с программой сообщений `write`

когда я использую программу для отправки сообщений, как я могу использовать символы UTF-8?

Я отправляю:

 write user2 Ehilà! Com'è? 

Но получатель получает:

 Message from user1@samehost on pts/1 at 21:08 ... EhilM-CM- ! Com'M-CM-(? 

Машина такая же, и LANG в en_US.UTF-8 уже en_US.UTF-8 .

Кажется, что write интерпретирует высокий бит как «мета» (клавиша Meta + или Esc ). Быстрый просмотр исходного кода (функция wr_fputs() в write.c ) подтверждает это: управляющие символы отображаются как ^X , символы с высоким набором бит показаны как MX . Боюсь, настройки локалей, терминалы и кодировки не имеют к этому никакого отношения. write – всего 7 бит.

Теперь, я урод Юникод, но это делает извращенный вид. write просто открывает целевой TTY и записывает на него (в этом нет волшебства). Нет простого способа получить кодировку символов, понятную процессу управления удаленным TTY. И даже если бы это было, не все кодировки были конвертируемыми ко всем другим кодировкам. И без преобразования передача сообщения в KOI8-R в консоль ISO-8859-1 потерпит неудачу. Поскольку write берет упрощенный подход 70-х, это то, что мы получаем.