LINUX.ORG.RU
ФорумTalks

Текстовые кодировки после контакта с внеземными цивилизациями

 , , , ,


0

1

Лорчик,

после контакта с внеземными цивилизациями остро встанет вопрос кодировок. Добавить новые код поинты в сам стандарт юникода не проблема. А как быть с UTF8?

По стандарту изначально предел UTF8 был равен шести байтам на код поинт, из которых только тридцать один бит нёс информацию – остальные служебные. На сегодня её длина дополнительно ограничена четырьмя байтами, то есть двадцатью одним информационным битом. А ведь это всего два миллиона девяносто семь тысяч сто пятьдесят два возможных код поинта. Многие из которых уже аллоцированы.

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

★★★★

Сколько байт будут занимать код поинты кириллицы, символ рубля?

Учитывая сокращение числа русскоязычных граждан России вследствие демографического кризиса и их быстрое замещение мигрантами из средней Азии необходимость в кириллице может исчезнуть уже к середине этого века. А для арабского и латинского алфавитов места достаточно. Судьба рубля тоже очевидна. Т.е. я не вижу проблемы.

mbivanyuk ★★★★★
()

А кто вам сказал, что они ещё не здесь? Мимикрируют под землян. Они, кстати, UTF-32 и придумали, ибо для всех, абсолютно, земных языков достаточно 24 бита.

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

Мимикрируют под землян. Они, кстати, UTF-32 и придумали, ибо для всех, абсолютно, земных языков достаточно 24 бита

осталось только землянам придумать свой процессор с 24-битовыми регистрами, а не пользоваться рептилоидным 32-битным (который был придуман, очевидно, для поддержки их UTF-32)

Egor_
()

21 бит там из-за того, что по стандарту количество кодовых точек 0x10FFFF.

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

видеокарты ATI с 24-битными пикселами

во-первых, видеокарта считывает пиксели только последовательно, то есть, там внутри наверное стоит сдвиговый регистр для получения очередного 24-битового пикселя, а считывание из видеопамяти происходит всё равно кусками по 32/64/128 бит по выравненным адресам.

во-вторых, на стороне софта (напр., винапи функция декодирования видео в последовательность картинок) в структуре данных для хранения 24-битных RGB битмапов каждый пиксель всё равно выравнивался на 4-байтовую границу (т.е., после 3 байт R,G,B один байт пропускался).

в-третьих, 24-битные пиксели в видеокартах появились в том числе из-за того, что размеры видеопамяти 640х480х16 и 640х480х32 как-то плохо соотносились со степенями двойки, а вот значение 640х480х24 подходило замечательно (каждая швея знает, что при кройке одежды лоскутов должно оставаться поменьше, и каждая кухарка аналогичным образом стремится уменьшить кол-во обрезков теста при вырезании печенюшек, ну а чем производители видеокарт хуже?)

для текста 24-битный формат не пойдёт, т.к. при работе с текстом нужен удобный доступ к произвольному символу, одной инструкцией по выравненному адресу (да, с UTF-8 к нам пришёл геморрой, в результате чего нормальный софт сначала переводит эту чёртову UTF-8 в 32-битные кодепоинты, несколько кодепоинтов объединяет в одну графему (графеме временно присваивается какой-нибудь неиспользуемый 32-битные код) и только после этого работает с текстом, обратно в UTF-8 текст переводится только при сохранении на диск).

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

в-третьих, 24-битные пиксели в видеокартах появились в том числе из-за того, что размеры видеопамяти 640х480х16 и 640х480х32 как-то плохо соотносились со степенями двойки, а вот значение 640х480х24 подходило замечательно

Бред Сивой Кобылы. Сначала появился режимы 800×600 и 1024×768, под них появились 1Мб карты (способные в 800×600×16 и 1024×768×8), никакого 640×480×24 эти первые карты не умели, только 640×480×16. И только распространение 1024×768 мониторов и любовь к HiColor расширило типичную видеопамять до 2Мб, а режимы 640 и 800 до 24 бит (внутри используя, разумеется, выравненное 32 битное представление).

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

внутри используя, разумеется, выравненное 32 битное представление

нет, в памяти видеокарты 24-битные пиксели лежали без выравнивания
проверить это можешь сам, взяв старый комп с какой-нибудь видеокартой типа S3Virge на 1 Мб (вынь лишнюю память, если там 2 Мб) и посмотрев список доступных видеорежимов в винде - там будет режим 640х480х24, значит, выравнивания нет (иначе просто не влезло бы)

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

S3Virge на 1 Мб

Не было таких, 2мб напаянной минимум. А вот S3 Trio64V+ на 1Мб у меня была. Правда, вот в чём беда, она умела только в HiColor. Доки к линуксовому драйверу гласят, что на всех моделях, кроме Virge/VX TrueColor исключительно 32 битный — https://www.kernel.org/doc/html/v5.5-rc6/fb/s3fb.html

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

Не было таких

да, я спутал с S3Trio64 1Мб
почему линуксовый драйвер 24bpp не поддерживал - хз
на винду поставь и сам всё увидишь

Egor_
()

Внезапно, на кириллице говорит вся вселенная. Точнее наша галактика. Если ещё точнее, то бОльшая часть, так что расслабьтесь.

xwicked ★★☆
()

Добавить новые код поинты в сам стандарт юникода не проблема. А как быть с UTF8?

Был получен ответ на этот вопрос от внеземной цивилизации:

https://ycdn.space/f/pr/predator_4.png

Что в переводе означает «не всем нужно».

Im_not_a_robot ★★★★★
()

Если из utf выкинуть эможи то освободится куча места под новые языки.

Kolins ★★★
()

Давеча saahriktu обсуждал необходимость создания KOI32. Вам стоит обсудить детали.

Korchevatel ★★★★★
()

Текстовые кодировки после контакта с внеземными цивилизациями

будут такими, какими они сейчас установлены межгалактическим стандартом инопланетян.

Или кто-то думает что милиард трилионов целевизаций живущих в 100500 галактических скоплениях будут принимать наши местечковые стандарты?

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

Кастаните Саахрикту, он объяснит все :)

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