LINUX.ORG.RU
ФорумTalks

OpenBSD-шники оседлали локомотив прогресса. Локомотив, правда, не рабочий и вообще памятник, но...

 ,


0

1

Эдди_ЕМ, не читай дальше!

Разработчики OpenBSD сообщили о переводе эмулятора терминалов xterm на использование по умолчанию кодировки UTF-8, вместо ранее применяемой локали C/POSIX. По заявлению разработчиков, переход на UTF-8 связан прежде всего с работой по усилению безопасности, так как передача в xterm данных из приложений была сопряжена с опасностью неверной трансляции символов, в случае использования различных кодировок. Некоторые символы в UTF-8 могут быть восприняты при трансляции в C/POSIX как управляющие последовательности, например, символ U+00DF (printf «\303\237\n») будет воспринят терминалом как управляющая последовательность и приведёт к зависанию терминала до сброса настроек меню.

Внимание! По ссылке очень много опенбсдятины:
http://undeadly.org/cgi?action=article&sid=20160308204011

★★☆

Последнее исправление: Stahl (всего исправлений: 1)

Ну так они планировали всю систему перевести в UTF-8 only, просто очередной этап.

Deleted
()
Ответ на: комментарий от Xellos

Беда не в дистре, а в том, что Эдди не умеет считать до 9.

Stahl ★★☆
() автор топика
Ответ на: комментарий от SevikL

Я знаю, но это же бздя, на его месте мы было бы насрать. Даже при всей его любви к восьмеричной системе.

Xellos ★★★★★
()

Юникод, конечно, ненужен, но и однобайтные кодировки никто же не выпиливает. И в OpenBSD, наверное, они останутся. Ну а то, что не по дефолту, так это совершенно не важно. Главное чтобы была возможность выпилить юникод и включить локаль KOI8-R. Ну, а если и этого нет, то тоже ничего страшного. Есть LFS, Gentoo и другие дистрибутивы GNU/Linux где локаль KOI8-R включается.

saahriktu ★★★★★
()
Ответ на: комментарий от Deleted

почему он так не любит UTF?

Потому что русские символы занимают два байта.

true_admin ★★★★★
()
Ответ на: комментарий от r_asian

Коды символов в студию

А вдруг это будет расценено как пропаганда? Я не хочу рисковать.

mandala ★★★★★
()
Ответ на: комментарий от Deleted

Зависит от того, сколько тебе лет. Изначально UTF был набором костылей везде, где его раньше не было, и просто так представить строку с не однобайтовой кдировкой было очень трудно. А bitrix cms, кажется, до сих пор с ним совместим через ж... и вызывает боль у нубов.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от karton1

зачем в 2016 использовать KOI-8?

  • Зачем прыгать с кодировки на кодировку? А если потом появится ещё какая-нибудь VUG-256, то все с радостью на неё перепрыгнут и переконвертируют свои коллекции текстовых файлов? Не проще ли выбрать кодировку один раз в жизни?
  • Экономия системных ресурсов; тексты занимают меньше места на носителях и в оперативке и быстрее обрабатываются;
  • Можно продолжать юзать «main (int argc, char **argv)», strncpy, strncmp, printf,... и другие неюникодные функции;
  • Можно переместить указатель на подстроку со смещением N символов просто прописав strptr + N;
  • И т.д.
saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от karton1

Потому что у Юникода преимуществ ещё больше:)

Stahl ★★☆
() автор топика
Ответ на: комментарий от karton1

А зачем все перешли тогда на utf-8, если у koi-8 столько преимуществ?

При всех плюсах однобайтовых кодировок у них есть всего один единственный минус - отсутствие универсальности. В одну кодировку помещается не более чем 256 символов. А людям захотелось универсальных кодировок с тысячами символов. Вот и сделали. И жертвуют теперь всем этим ради этой универсальности.

saahriktu ★★★★★
()
Ответ на: комментарий от saahriktu

Зачем прыгать с кодировки на кодировку?

Суть Unicode в том, что с него уже прыгать не надо.

то все с радостью на неё перепрыгнут и переконвертируют свои коллекции текстовых файлов?

Конвертировать текстовые файлы в кодировку локали системы не надо.

Экономия системных ресурсов; тексты занимают меньше места на носителях и в оперативке и быстрее обрабатываются;

В качестве платы за это — невозможность многоязычных текстов. Если не-юникод в качестве системной локали — ещё и невозможность названий файлов на других языках. При этом по современным меркам тексты занимают ничтожно мало.

Можно продолжать юзать «main (int argc, char **argv)», strncpy, strncmp, printf,... и другие неюникодные функции;

С UTF-8 — тоже.

Можно переместить указатель на подстроку со смещением N символов просто прописав strptr + N;

Используй в качестве внутреннего представления UCS-4 — тогда тоже можно будет. Или UCS-2, тогда можно будет если запретить Unicode Supplementary Plane (символы, не представляющие собой то, что нормальный человек мог бы посчитать текстом).

Deleted
()
Ответ на: комментарий от Deleted

Суть Unicode в том, что с него уже прыгать не надо.

Про KOI8-R также говорили. А потом - «Мало универсальности...». Потом ещё что-нибудь будет.

Конвертировать текстовые файлы в кодировку локали системы не надо.

Как это? less открывает текстовые файлы в текущей локали. grep фильтрует по текущей локали. Все инструменты командной строки для работы с файлами ожидают что текст в них будет в текущей локали. Так что, при переходе на другую локаль конвертировать обязательно.

saahriktu ★★★★★
()
Ответ на: комментарий от saahriktu

Я даже могу предположить что будет дальше. Дальше люди расстроятся по поводу того, что они развели зоопарк из тысяч недошрифтов, которые несовместимы между собой, всё это тормозит и не даёт полной свободы юзеру. И тогда отдельные шрифты как шрифты уйдут в прошлое. Все символы будут рисоваться на специальном новом языке векторной графики, а текстовые редакторы как мы их знаем уйдут в прошлое. Появятся принципиально новые текстовые редакторы, которые будут позволять работать с библиотеками шаблонов и создавать собственные символы, определять каким хоткеям в редакторе какие символы соответствуют. Созданные таким образом текстовые файлы будут идентично отображаться на всех других машинах и не требовать наличия соответствующих шрифтов. В такие утилиты как grep будут добавлены таблицы соответствия наиболее распространённых начертаний символов, за счёт чего они станут занимать больше дискового пространства и на порядки больше тормозить. Но, людям это будет уже не актуально. Они получат те возможности, которых у них раньше не было... С форумов исчезнут вопросы про символы юникода. Зачем спрашивать если можно самому быстро набросать? И не нужно ни с кем ничего согласовывать, пропихивать в стандарты кодировок, ожидать появления в шрифтах,... Просто сам набросал - и всё, можно использовать.

saahriktu ★★★★★
()
Ответ на: комментарий от Yossarian

Ему не надо перелогиниваться, это не Эдик, он им покусан

Valkeru ★★★★
()
Ответ на: комментарий от Stahl

ttf - это отдельные шрифты, про вымирание которых я писал. Зачем отдельные шрифты если конкретные начертания символов описываются на новом языке векторной графики прямо в текстовых файлах. Текстовые файлы станут не описанием последовательности символов и модификаторов в той или иной кодировке, а цельным описанием всего текста на этом самом языке векторной графики. Никаких кодировок. Никаких шрифтов. Они уже будут ненужны - всё в текстовых файлах. Я предполагаю, что так оно и будет.

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Про KOI8-R также говорили.

Не умели думать головой, игнорировали тот факт, что в мире языков больше двух.

А потом - «Мало универсальности...». Потом ещё что-нибудь будет.

Когда будет мало универсальности юникода, это уже будет не текст.

Deleted
()
Ответ на: комментарий от mandala

да я вообще против эмоджи, смайликам не место в таблице кодировок, а то вдруг поттеринг узнает и для запуска сервиса надо будет ставить веселый смайлик, а для остановки грустный...для убийства злой

Deleted
()
Ответ на: комментарий от Deleted

Зачем прыгать с кодировки на кодировку?

Суть Unicode в том, что с него уже прыгать не надо.

UTF-8 => UTF-16, не?

Deleted
()
Ответ на: комментарий от saahriktu

Потом ещё что-нибудь будет.

С чего бы? UTF-8 позволяет закодировать 2147483648 различных символов. КОИ-8 256. Ещё с самого начала было очевидно, что второго будет не хватать во всех случаях. Просто в отдельных частных случаях (кодировка для одного конкретного неиерографического языка + ASCII-символы) её хватало. А лучше ничего тогда не придумали. В случае с UTF-8 представить use-case, когда его не хватит весьма проблематично. Разве что мы выйдем в космос и познакомимся со 100500 различных цивилизаций. Однако в этом случае будет ещё куча других изменений (появится, скажем, какой-нибудь галлактический DateTime), по сравнению с которыми изменение дефолтной кодировки будет сущей мелочью.

KivApple ★★★★★
()
Ответ на: комментарий от Deleted

Нет, это просто один из вариантов представления юникода. Ещё есть UTF-32, например. Если так рассуждать, то будущее за ним.

UTF-8 - имеет наибольшую обратную совместимость, полноценная обработка немного сложнее. Наилучшее соотношение символ/количество байт. Впрочем, всё равно 90% людей будут работать через библиотеки, так что не заметят проблем.

UTF-16 - имеет наилучшую производительность и является разумным компромиссом между пожиранием ОЗУ и представлением всех необходимых символов

UTF-32 - способен представить абсолютно любой символ, даже самые извращенские, однако слишком жрёт ОЗУ.

Поскольку загрузка даже больших текстов не является узким местом на современных машинах (а на микроконтроллерах либо не нужно ничего кроме ASCII, либо не нужны огромные тексты, а обычно сразу и то, и то), то наиболее выгодно хранить файлы в UTF-8. Потому что они могут быть ограниченно обработаны старыми утилитами и меньше распухают по размеру.

А вот как работать со строками в ОЗУ вопрос более сложный. Но ты ничего не потеряешь, если будешь хранить все свои файлы в UTF-8.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)

так всегда и было, что obsd за прогрессом тянутся медленно, но очень верно.
Был рассказ, если не ошибаюсь, у Асприна (не помню точно, правда) - про двух братцев, представителей древней расЫ, которые приказали роботу привезти себе какую-нибудь живность из вселенной. Братьям привезли людишек, и пока братья думали и совещались, что бы с ними поделать, людишки запилили новую цивилизацию с нуля и начали перекидываться ядерными бомбочками.


Кстати, кто помнит такой рассказ - напомните, будьте милы.

takino ★★★★★
()
Последнее исправление: takino (всего исправлений: 1)

и? ты вообще понял, в чём новость?

buratino ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.