eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2016-02-03 11:44 am
Entry tags:

koi8-r в бубунте

На работе понадобилось на "общественный" компьютер поставить линукс взамен устаревшей давным-давно 2008-й мандривы. С гентой на 512МБ оперативы особо не развернешься, поэтому я поставил лубунту 2014-LTS.
Понятно, что "один раз — не бубунтовод" уже не прокатит, но нужно было сконфигурировать нормальную локаль. И в этом мне помогла эта заметка.
Итак, действия:
  • Добавить строчку ru_RU.KOI8-R KOI8-R в файл /var/lib/locales/supported.d/ru.

  • В файл /etc/environment добавить строки:
    LC_ALL=ru_RU.koi8r
    LC_NUMERIC=C

    А вот LANG надо устанавливать в своем ~/.profile, т.к. из "общесистемного" файла он почему-то не подхватывается. Кстати, в этот же environment вписываются общесистемные настройки прокси.

  • Запустить locale-gen ru для генерирования кошерной локали.

  • Установить поддержку кириллицы в консоли: apt-get install console-cyrillic

  • Никаких loadfont в ~/.profile указывать не надо, всем этим занимается утилита cyr, именно ее к себе в ~/.profile и надо добавить помимо установки LANG.

  • Далее нужно настроить локаль консоли при помощи dpkg-reconfigure console-cyrillic.


Все, теперь "перезаходим" и видим нормальную русскую локаль.

Хоть бубунта и не является линуксом, поставлю-таки метку [linux], чтобы проще было потом искать.

[identity profile] sevasat.livejournal.com 2016-02-03 01:03 pm (UTC)(link)
Ты какой-то жестокий луддит просто. Хрен с ним с системд, штука спорная, хотя и полезная, но отрицать необходимость введения юникода - я такое ооочень нечасто слышу, вот честно.

[identity profile] eddy-em.livejournal.com 2016-02-03 01:52 pm (UTC)(link)
systemd нарушает UNIX-way! Поэтому в системе ему делать нечего, как и всякой гадости вроде pulseadio: только больному мозгу могла прийти идея сделать посредника между звуковым сервером и приложениями! Ну, а systemd эдак скоро станет самостоятельной операционной системой с мегакривущими настройками — такое даже мастдайщикам только в страшном сне приснится!

Насчет юникода же: мне пофиг, что он у меня в десктопных приложениях, но в консольных — только однобайтные строки! Я не собираюсь париться по поводу неопределенности, сколько же места нужно выделить под строку с определенным количеством символов в ней!

[identity profile] vlkamov.livejournal.com 2016-02-04 05:37 am (UTC)(link)
> в консольных — только однобайтные строки!

konsole и gnome-terminal позволяют выбрать кодировку консоли.
Вообще же следует отличать стандартный вывод и внутреннюю кодировку данных+программы их обрабатывающей.

У меня накопились текстовые таблицы в KOI8-R. Сами исполняемые скрипты в ней же. Было дело, пользовался konsole, теперь они же без перекодировки прекрасно работают и в UTF-ной консоли, только при запуске вручную добавляю:
... | iconv -f KOI8-R -t UTF-8
чтобы вывод был читабельным.

А в последнее время перевожу их на web-интерфейс, там достаточно указать charset в выводимом файле.

[identity profile] eddy-em.livejournal.com 2016-02-04 05:53 am (UTC)(link)
Я говорю об обработке этих строк. Читаем man strlen, man malloc, man strdup, man strchr, man strstr…

[identity profile] vlkamov.livejournal.com 2016-02-04 06:01 am (UTC)(link)
И я об обработке. Обработка идет независимо от кодировки консоли.

[identity profile] Максим Евтихов (from livejournal.com) 2016-02-07 10:02 pm (UTC)(link)
Пускай весь мир страдает от необходимости постоянно переключать кодировки, лишь бы было удобное только для программистов взаимно однозначное соответствие между байтом и символом? :-)

[identity profile] eddy-em.livejournal.com 2016-02-08 06:08 am (UTC)(link)
Зачем их переключать? У русских своя кодировка, у поляков — своя, и т.д., и т.п.

[identity profile] Максим Евтихов (from livejournal.com) 2016-02-07 09:52 pm (UTC)(link)
И как же мне с голой ALSA только в одном приложении быстро перевести звук со встроенной звуковухи на bluetooth наушники, если в приложении такой фичи нет?

[identity profile] eddy-em.livejournal.com 2016-02-08 06:07 am (UTC)(link)
Мне этот функционал не нужен. Вот для перевода звука с нормальной звуковухи на интегрированную, где у меня были наушники, я когда-то давно скриптик написал. Конечно, приложение, выдающее звук, при этом надо перезапустить.
Зато без костылей проклятого Лēни Потного!