LINUX.ORG.RU
ФорумTalks

[UTF-8]По-моему здорово


0

0

Собственно, на undeadly опубликовали новость про то, что в OpenBSD появится поддержка UTF-8.

Для труъ: сказали, что драйвер терминала переписывать не будут. Но на самом деле и хрен бы с ним. Например, как я понимаю, если я подключаюсь к своей учетке на devio.us через SSH с графического терминала, то работать будет. Поддержка юникода прямо в голой консоли конечно желательна, даже очень, но не супер-критична. В конце концов, лично я оказываюсь в голой консоли только в случае неожиданного звиздеца и на этапе первичной настройки (да и то - в OpenBSD иксы есть из коробки, это не Арч).

Но суть не в этом. Привели клевый пример файла, показывающего возможности юникода. Я лично такого не видел.

Для труъ: показали текстовый файл (plain text), в котором не только есть различные национальные алфавиты, не только оформление текста рамкой (по-моему такое уже сто лет есть), но самое клевое - формулы.

Как их сделали? Поясню: там есть на странице исходник, но можно ли такое сделать не руками?

★★

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

Ммм... Ну да, конечно, первый стандарт юникода появился (ЕМНИП) в 1991 году. Было бы здорово если опенбсдшники взялись за него пораньше, и придумали юникод в начале 80х. Тогда и работу над самой операционкой можно было бы начать пораньше, чем в 1995, ага.

Но суть-то не в этом. Я про сам пример, новость уже раньше обсуждалась.

NoMad ★★
() автор топика

да, добавляют utf-8 поддержку в libc, непонятно почему не unicode

utf-8 в текстовой консоли(без X-ов) не возможен и не нужен

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

>utf-8 в текстовой консоли(без X-ов) не_возможен
Да прям, можно и извратиться.

и не нужен

Сложно спорить с очевидным.

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

М.б. речь именно о текстовой, не о фреймбуфферной?

GotF ★★★★★
()

>Привели клевый пример файла, показывающего возможности юникода

греческий алфавит и математические операторы с индексами я постоянно вижу и использую. Многоэтажные формулы в псевдографике выглядели бы круто лет 30-40 назад, сейчас это скорее задротство. Достаточно поставить не моноширинный шрифт и всей псевдографике приходит пушной зверек.

>можно ли такое сделать не руками?

можно конечно, берешь таблицу символов (типа kcharselect) и делаешь. Я вот недавно делал вывод матриц псевдографикой, т.к. было лень прикручивать либу для рендеринга формул. Правда в итоге не чистый текст получился, строилось все в rich text таблицей, но выглядело так же :

║   1 ║ 
║  23 ║ 
║ 456 ║

nu11 ★★★★★
()

Объясни пожалуйста как ты сейчас работаешь в шелл devio.us с русскими буквами. Каким терминалом пользуешься, как выставляешь keymap для 8-битной кодировки. Я с локалью utf8 пока так и не смог добиться русских букв там :(.

tux2002
()

>Как их сделали?

Также, как псевдографику. В UTF-8 есть все эти верхние/нижние части интегралов, квадратных корней, скобок.

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

Сейчас юникод нужно поддерживать прежде всего из соображений совместимости а не для новых фич, хотя пример текстового файла классный, да

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

Плохо работаю, надо сказать. Ряд проблем решаю банально. У меня gnome-terminal, в нем я выставляю кодировку koi8-r. В системе я вроде ничего не менял.Поскольку пока что у меня в основном он юзается для того, чтобы ковырять HTML и в частности движок blazeblogger, а также запускать irssi тогда, когда я вынужден сидеть под виндой (а на русских каналах я не сижу), то мне хватает.

Однако возникает, например, следующая проблема. Если я пишу с devio.us письмо, скажем, на яндекс и gmail, там оно корректно отображается как koi8-r. Когда я на него отвечаю, оно каким-то магическим образом превращается в юникод и все валится в дерьмо. Есть какая-то опция для mutt, но я все время забываю ее потестить.

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

>Эм. А как же линукс?

Он имеет в виду набор символов за пределами 256 байт знакогенератора.

...

Хотя во фреймбуфере, конечно, можно сделать и нормальный юникод. Но, насколько я понимаю, никто не заморачивался.

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

А ты попробуй в линуксе одновременно русские буквы и, например, что-нибудь с умлаутами вывести. Без читов вроде fbterm и иксов.

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

Хм. То есть даже в линуксе в чистой консоли лишь эмуляция (ну или режим совместимости, что ли), или что-то вроде этого?

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

во-первых, 512 символов, во вторых - кешировать в памяти только нужное, возможно даже с динамическим ремаппингом (так делали курсор мышки, которая перемещалась попиксельно в текстовом режиме - динамически правились 4 символа знакогенератора). Причем тогда еще рисовали няшные кнопочки, тени и круглые рамочки, всем и на все хватало, а части символов (скажем от 0 до 31) никто и не видел в повседневном использовании.

я вот сейчас экспериментирую со своим тулкитом, хочу заставить работать его и в консоли, но... Увы... И даже во фреймбуффере с юникодом сложности, хотя тут аппаратных ограничений нет вообще.

ЗЫ: во времена доса мне встретилась cracktro, которая умела скроллить текстовый экран не просто попиксельно, а еще и ОЧЕНЬ плавно. Было бы няшно прикрутить это к современной консоли

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

>начиная с vga знакогенератор распух до 512 ;]

Путём урезания цветности. А цветов итак не хватает :)

не знаю как дела в современных видеокартах


Да никак, ИМХО. Новых _текстовых_ стандартов больше не вводилось.

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

>Хм. То есть даже в линуксе в чистой консоли лишь эмуляция (ну или режим совместимости, что ли), или что-то вроде этого?

Не эмуляция. Просто стандартные текстовые режимы понимают только 256 символов. По байту на знакоместо. Нарисовано там может быть что угодно, но - не более 256 образцов. Поэтому обычно в зависимости от настроек рисуется только какой-то базовый набор, а всё остальное - квадратики.

Естественно, что речь идёт о выводе именно в текстовых консолях. Если вывести текст в терминалке в GUI, то там можно нарисовать что угодно.

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

>Причем тогда еще рисовали няшные кнопочки, тени и круглые рамочки

Можешь не рассказывать, я сам этим занимался под DOS :)

всем и на все хватало


Ну, ещё бы. В старшей части кодовой таблицы - 128 символов. Русских - 66. Оставалось ещё 62 :) Всю псевдографику, типа пересечений простых и двойных линий или все варианты частично заполненных квадратиков всё равно не использовали.

а части символов (скажем от 0 до 31) никто и не видел в повседневном использовании.


Агащаз! :D Многие символы оттуда (из стандартного набора) очень даже в ходу были. Скажем, символы карточных мастей или смайлы.

во времена доса мне встретилась cracktro, которая умела скроллить текстовый экран не просто попиксельно, а еще и ОЧЕНЬ плавно


Так банальность же. Крутишь регистр построчного смещения (это «попиксельный скроллинг») исключительно во время обратного хода луча (это - «очень плавность»). С последним сегодня проблематично хотя бы в виду отсутствия понятия обратного хода луча на большинстве мониторов :)

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

> се варианты частично заполненных квадратиков всё равно не использовали.

частично заполненных квадратиков всего 3 было, этого хоть и мало, но можно было рисовать няшные фоны в приложениях, различные гистограммы и прогресс-бары

Скажем, символы карточных мастей или смайлы.

Карточных мастей всего 4, да и все игрушки, которые я помню, рисовали их уже в графическом режиме. И главное - я же не предлагаю их исключить полностью, а кешировать по мере необходимости, как будут нужны - догрузить в знакогенератор.

Крутишь регистр построчного смещения

СЛОЖНОТА, мне с палитрой было сложно разобраться, такие тонкости я не осилил.

Было бы няшно найти добровольца, который бы сделал патчсет для «плавного скроллинга с ускорением» в простой консоли. И дабы в апстрим воткнуть.

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

> ЗЫ: во времена доса мне встретилась cracktro, которая умела скроллить текстовый экран не просто попиксельно, а еще и ОЧЕНЬ плавно. Было бы няшно прикрутить это к современной консоли

Описание VGA регистров в зубы и вперёд. Правда нет уверенности что все эти регистры сдвига, ремаппинга, и переключения банков работают на современных картах.

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

>СЛОЖНОТА, мне с палитрой было сложно разобраться

Это много проще палитры :) Грубо говоря - в VGA есть регистр (на память, конечно, не помню уже порт и параметры), в который пишется параметр - с каким смещением начинать рисовать текстовый вывод. Т.е., скажем, у тебя высота знакоместа - 14 точек. Пишешь с определённой задержкой (от которой зависит скорость скроллинга) туда инкрементируемое (или декрементируемое - формат записи я не помню) число и у тебя изображение на каждой записи сдвигается на пиксель. Как на полное знакоместо сместилось - делаем нормальный скроллинг на одну строку и сбрасываем этот регистр. Потом - по новой.

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

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

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