в чем причина популярности и широкого распространения кодировки utf 8

Русские Блоги

Почему кодировка utf8 так распространена и каковы ее преимущества?

Зачем вам нужен набор символов

Какие наборы символов

Самым ранним набором символов является кодировка ANSI (американский стандартный код для обмена информацией). Американцы кодируют все строчные буквы, заглавные буквы, пробелы и символы от 33 до 127,0-32 Для специальных целей такой низкий 7-битный байт может представлять эти символы, которые могут отлично отображать английский язык.

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

Однако позже выяснилось, что некоторые тексты и символы в других странах не могут быть отображены.Затем также был использован старший бит, таблица ANSI была расширена и добавлено больше специальных символов, от 127 до 255.

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

GB2312、GBK、GB18030

Но когда дело дошло до Китая, китайцы увидели достаточно шаров. В Великом Китае около 80 000 человек. Эти 255 находятся далеко.

Таким образом, китайский народ самостоятельно исследовал и разработал и отменил странные символы после 127-го. Правило: значение символа меньше 127 совпадает с оригиналом, но когда два символа больше 127 объединены, это означает китайский символ. Первый байт (он назвал его старшим байтом) используется от 0xA1 до 0xF7, за которым следует Один байт (младший байт) имеет значение от 0xA1 до 0xFE, поэтому мы можем комбинировать более 7000 упрощенных китайских символов. В этих кодах мы также скомпилировали математические символы, латинские греческие буквы и японские псевдонимы. Даже исходные числа, знаки препинания и буквы в ASCII были перекодированы с помощью двухбайтовых кодов. Это то, что часто называют символом «полной ширины», а символы ниже 127 называются символами «полуширины».

Однако GB 2312 не может обрабатывать редкие символы, встречающиеся в именах древних китайцев и т. Д., Что привело к появлению китайского набора символов GBK и GB 18030.

GBK больше не требует, чтобы младший байт был кодом после 127. Пока первый байт больше 127, он фиксируется, чтобы указывать, что это начало китайского символа, независимо от того, следует ли за ним содержимое расширенного набора символов.

Национальный стандарт GB18030-2000 «Кодировка китайских символов для обмена информациейНабор символов«Дополнение к базовому набору» является наиболее важным стандартом кодировки китайских символов после GB2312-1980 и GB13000-1993 в Китае.Компьютерная системаОдин из основных стандартов, которым необходимо следовать. Стандарт кодирования GB18030-2000Министерство информационной индустриииГосударственное бюро качества и технического надзораОн был выпущен совместно 17 марта 2000 года и будет официально введен в действие в качестве национального стандарта в январе 2001 года. GB18030-2005 «Информационные технологииКитайское кодированиехарактер«Коллекция» независимо разработана нашей страной, которая в основном состоит из китайских иероглифов и содержит различные символы китайского меньшинства (такие как тибетский,МонголияДай ЙиКорея、УйгурскийИ т.д.) Супер большое китайское кодированиехарактерколлекцияОбязательные стандартыВключая более 70000 китайских иероглифов.

Вышеуказанные кодыСовместим с существующими кодами ANSI (не включая коды расширения)В противном случае китайцы используют GBK, американцы используют ANSI, а китайцы вынуждены переключаться назад на коды ANSI, чтобы увидеть американские вещи.

UNICODE

В то время каждая страна придумала набор своих собственных стандартов кодирования, таких как Китай, в результате чего никто не знал кодирование друг друга, и никто не поддерживал кодирование других. В то время китайцы хотели отображать на компьютере китайские иероглифы, им нужно было установить «систему китайских иероглифов», которая специально использовалась для отображения и ввода китайских иероглифов. Если была установлена ​​неправильная система иероглифов, отображение могло быть грязным. Что мне делать? В этот момент один позвонил ISOМеждународная организация (Международная организация по стандартизации) решила заняться этим вопросом. Метод, который они использовали, очень прост: откажитесь от всех региональных схем кодирования и заново включите кодирование, которое включает в себя все культуры, все буквы и символы на земле! Они намереваются назвать его «Универсальный многооктетный набор кодированных символов», называемый UCS, обычно известный как « UNICODE”。

Когда UNICODE начал развиваться, емкость памяти компьютера значительно возросла, и пространство перестало быть проблемой. Таким образом, ISO прямо оговаривает, что для равномерного представления всех символов должны использоваться два байта, то есть 16 битов. Для этих символов «полуширины» в ascii пакет UNICODE сохраняет свою исходную кодировку без изменений, но его длина отличается от исходной 8 Бит расширяется до 16 бит, а символы других культур и языков перекодируются равномерно. Поскольку английскому символу «половинной ширины» нужно использовать только младшие 8 бит, верхние 8 бит всегда равны 0, поэтому это атмосферное решение будет тратить вдвое больше места при сохранении английского текста.

Тем не менее, UNICODE не рассматривал возможность обеспечения совместимости с какой-либо существующей схемой кодирования, когда она была сформулирована: он может объединить в общей сложности 65535 различных символов, которые могут уже охватывать символы всех культур в мире.

Обратите внимание, что здесь Юникод определяет только представление всех символов в 1-65536 и не рассматривает, как хранить и анализировать конкретный компьютер.

UTF-8、UTF-16

Так много стандартов UTF (UCS Transfer Format) для передачи появилось, как следует из названия,UTF88 бит за раз для передачи данных, и UTF16Это 16 битов за раз, но для надежности передачи от UNICODE к UTF нет прямого соответствия, но некоторые алгоритмы и правила должны быть преобразованы.

UTF-16 означает «китайский»

UTF-32

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

Во-вторых, UTF-8 имеет переменную длину, вы можете использовать 1-3 байта в соответствии с различными символами, Unicode2 составляет 1-8 байтов для хранения относительного UTF-16, UTF-32 для экономии места для хранения.

Что касается вопроса, что Блокнот не может сохранить «Unicom» в одиночку (воспроизведенный)

Когда вы создаете новый текстовый документ, введите в него слово «Unicom» и сохраните его. Когда вы откроете его снова, первоначально введенный «Unicom» станет двумя искаженными символами.

Эта проблема вызвана конфликтом между кодировкой GB2312 и UTF8. Правило преобразования из UNICODE в UTF8 вводится из Интернета:

1110xxxx 10xxxxxx 10xxxxxx

Например, кодировкой Unicode китайского символа является 6C49. 6C49 находится между 0800-FFFF, поэтому используется 3-байтовый шаблон: 1110xxxx 10xxxxxx 10xxxxxx. Запись 6C49 в двоичную форму: 0110 1100 0100 1001, битовый поток делится на 0110 110001 001001 в соответствии с методом сегментации трехбайтового шаблона, и, в свою очередь, заменяя x в шаблоне, мы получаем: 1110-0110 10-110001 10-001001, то есть E6 B1 89, это его кодировка UTF8.

Когда вы создаете новый текстовый файл, кодировкой по умолчанию для Блокнота является ANSI. Если вы вводите китайские символы в кодировке ANSI, это фактически метод кодирования серии GB. Под этой кодировкой внутренний код «Unicom»:

Вопрос о заголовке файла спецификации

При использовании программного обеспечения, такого как Блокнот, который поставляется вместе с WINDOWS, при сохранении файла в кодировке UTF-8 в начале файла вставляются три невидимых символа (0xEF 0xBB 0xBF или BOM). Это строка скрытых символов, используемая для того, чтобы редакторы, такие как Блокнот, могли распознать, кодируется ли этот файл в UTF-8. Это может избежать этой проблемы. Для общих файлов это не вызовет никаких проблем.

Определите, какой текст UTF используется

Чтобы узнать, какой метод кодирования является конкретным, вы можете посмотреть начало текста (BOM), ниже находится начальная отметка, соответствующая всем кодировкам.

EF BB BF UTF-8
FE FF UTF-16/UCS-2, little endian
FF FE UTF-16/UCS-2, big endian
FF FE 00 00 UTF-32/UCS-4, little endian.
00 00 FE FF UTF-32/UCS-4, big-endian.

Источник

Группа разработчиков предлагает перейти на UTF-8

Недавно на Hacker News опубликовали манифест программистов из Тель-Авива. Они предложили сделать UTF-8 решением по умолчанию для хранения текстовых строк в памяти и коммуникации.

Материал породил активную дискуссию, и мы решили разобраться в ситуации, рассмотреть аргументы ИТ-экспертов — в том числе инженеров IBM и специалистов консорциума W3C.

Ситуация с кодировками

В 1988 году Джо Беккер (Joseph Becker) представил первый драфт стандарта Unicode. В основу документа легло предположение, что для хранения любого символа хватит 16 бит. Однако довольно быстро стало понятно, что этого недостаточно. Поэтому появились новые варианты кодировок — в том числе UTF-8 и UTF-16. Но разнообразие форматов и отсутствие строгих рекомендаций по их использованию привело к сумятице в ИТ-индустрии (в том числе в терминологии).

Внутренний формат ОС Windows — это UTF-16. При этом авторы манифеста, обсуждение которого велось на Hacker News, говорят, что одно время в Microsoft упоминали термины Unicode и widechar в качестве синонимов для UTF-16 и UCS-2 (которая считается своеобразным предшественником UTF-16). Что касается экосистемы Linux, то в ней принято использовать UTF-8. Многообразие кодировок порой приводит к тому, что файлы повреждаются при передаче между компьютерами с различными ОС.

Решением проблемы может стать стандартизация отрасли — переход на UTF-8 для хранения текстовых строк в памяти или на диске и обмена пакетами по сети.

Почему UTF-8 считают лучше UTF-16

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

Также специалисты из IBM говорят, что UTF-8 лучше подходит для взаимодействия с системами, не ожидающими прихода многобайтных данных. Другие кодировки юникода содержат многочисленные нулевые байты. Утилиты могут посчитать их концом файла. Например, в UTF-16 символ A выглядит так: 00000000 01000001. В строке Си эта последовательность может быть обрезана. В случае с UTF-8 нулем является только NUL. В этой кодировке первая буква латинского алфавита представлена как 01000001 — здесь проблем с непредвиденным обрывом не возникает.

По этой же причине инженеры из консорциума W3C рекомендуют использовать UTF-8 при разработке внешних интерфейсов. Так можно избежать сложностей с работой сетевых устройств.

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8
Фото — Kristian Strand — Unsplash

Резидент Hacker News отметил, что UTF-8 позволяет отлавливать ошибки кодирования на ранних этапах. В ней байты читаются последовательно, а служебные биты определяют их количество. Таким образом, значение кодовой точки (code point) вычисляется однозначно и разработчикам приложений не нужно задумываться о проблеме Little-Endian или Big-Endian.

Где у UTF-16 преимущество

Буквы латинского алфавита и символы пунктуации могут занимать меньше памяти в UTF-8 (по сравнению с UTF-16). Некоторым кодовым точкам требуется одинаковое количество байтов в обеих кодировках — например, этот факт справедлив для греческого языка и иврита.

Иначе обстоят дела с азиатскими иероглифами — в случае с UTF-8 им нужно больше места. Например, китайский символ будет представлен тремя байтами: 11101000 10101010 10011110. Этот же символ в UTF-16 будет выглядеть как 10001010 10011110.

Что в итоге

Дебаты, касающиеся проблемы внедрения единой кодировки, идут уже давно. Этот вопрос поднимался почти одиннадцать лет назад в треде на Stack Overflow. В нем принимал участие Павел Радзивиловский (Pavel Radzivilovsky) — один из авторов манифеста. С тех пор UTF-8 уже успела стать одной из самых популярных кодировок в интернете. И её признали обязательной для «всех ситуаций» в WHATWG — сообществе специалистов по HTML и API, развивающем соответствующие стандарты.

С недавних пор в Microsoft тоже начали рекомендовать использовать UTF-8 при разработке веб-приложений. Возможно, в будущем эта практика распространится на другие утилиты.

Что еще мы публикуем:

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8«Прячь www»: почему разработчики мейнстрим-браузера снова отказались от отображения поддомена
в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8«Как мы строим IaaS»: материалы о работе 1cloud
в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8Ситуация: нарушают ли AdTech-компании GDPR?
в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8Эра 10-нм чипов — что ждет индустрию в будущем
в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8Компьютер, который отказывается умирать

Источник

Как придумали кодировку UTF-8: выдержки из переписки создателей

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

Всем известна кодировка UTF-8, что давно доминирует в интернет пространстве, и которой пользуются много лет. Казалось бы, о ней все известно, и ничего интересного на эту тему не рассказать. Если почитать популярные ресурсы типа Википедии, то действительно там нет ничего необычного, разве что в английской версии кратко упоминается странная история о том, как ее «набросали на салфетке в закусочной».

На самом деле изобретение этой кодировки не может быть настолько банальным хотя бы потому, что к ее созданию приложил руку Кен Томпсон — легендарная личность. Он работал вместе с Деннисом Ритчи, был одним из создателей UNIX, внес вклад в разработку C (изобрел его предшественника — B), а позднее, во время работы в Google, принял участие в создании языка Go.

Перед вами — перевод нескольких писем, в которых разработчики вспоминают историю создания кодировки.

Действующие лица:

ken (at) entrisphere.com — Кен Томпсон

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8
Кен Томпсон (слева) с Деннисом Ритчи

«Rob ‘Commander’ Pike» — Роберт Пайк, канадский программист, работавший над UTF-8 вместе c Кеном Томпсоном

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

mkuhn (at) acm.org — Маркус Кун, немецкий ученый в области информатики

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

henry (at) spsystems.net — Генри Сперсер, автор одной из реализаций RegExp

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

Russ Cox — Русс Кокс, сотрудник Bell Labs, работавший над системой Plan 9

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

Greger Leijonhufvud — Один из сотрудников X/Open

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

Plan 9 — Операционная система, в которой впервые была использована кодировка UTF-8 для обеспечения ее мультиязычности.

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

UTF-8 — Кодировка символов Юникода

в чем причина популярности и широкого распространения кодировки utf 8. Смотреть фото в чем причина популярности и широкого распространения кодировки utf 8. Смотреть картинку в чем причина популярности и широкого распространения кодировки utf 8. Картинка про в чем причина популярности и широкого распространения кодировки utf 8. Фото в чем причина популярности и широкого распространения кодировки utf 8

Переписка 2003 года

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

Глядя на разговоры о происхождении UTF-8, я вижу, как постоянно повторяют одну и ту же историю.

Произошло это таким образом. Мы пользовались оригинальным UTF из стандарта ISO 10646 для поддержки 16-битных символов в Plan 9, который ненавидели, и уже были готовы к выпуску Plan 9, когда однажды поздно вечером мне позвонили одни парни, кажется они были из IBM. Я припоминаю, что встречался с ними на заседании комитета X/Open в Остине. Они хотели, чтобы мы с Кеном посмотрели их проект FSS/UTF.

В то время подавляющее большинство компьютерных программ и систем (документация, сообщения об ошибках и т.п.) было только на английском и только слева направо. Инженерам из Bell Labs показалось, что релиз Plan 9 — хороший повод для того, чтобы изменить это, поскольку проще всего вводить новшества в систему на этапе ее разработки, а не исправлять уже выпущенный продукт. Потому они стали искать специалистов, которые помогут им интернационализировать их проект.

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

Мы поняли, почему они хотят изменить дизайн и решили, что это хорошая возможность использовать наш опыт, чтобы разработать новый стандарт и заставить ребят из X/Open продвинуть его. Нам пришлось рассказать им об этом, и они согласились при условии, что мы быстро с этим справимся.

Потом мы пошли перекусить, и во время ужина Кен разобрался с упаковкой битов, а когда вернулись, то позвонили ребятам из X/Open и объяснили им нашу идею. Мы отправили по почте наш набросок, и они ответили, что это лучше, чем у них (но я точно помню, что они нам свой вариант не показывали), и спросили, когда мы сможем это реализовать.

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

Мне кажется, что это происходило в среду вечером. Мы пообещали, что запустим систему к понедельнику, когда у них, как мне кажется, намечалось какое-то важное совещание. В тот же вечер Кен написал код кодировщика/раскодировщика, а я начал разбираться с С и с графическими библиотеками. На следующий день код был готов, и мы начали конвертировать текстовые файлы системы. К пятнице Plan 9 уже запускался и работал на так называемом UTF-8.

А в дальнейшем история была немного переписана.

Почему мы просто не воспользовались их FSS/UTF?

Насколько я помню, в том первом телефонном звонке я напел им Дезидерату своих требований для кодировки, и в FSS/UTF не было как минимум одного — возможности синхронизировать поток байтов взятых из середины потока, используя для синхронизации как можно меньше символов (см выше, про определение границ символов. прим. пер).

Имеется в виду крылатая фраза, берущая начало из альбома Леса Крейна 1971 года, чье название и заглавная композиция: «Desiderata» взяты из одноименной поэмы, что переводится с латыни, как: «Желаемое». То есть, «напел им Дезидерату» следует понимать как «высказал пожелания». (прим пер.)

Поскольку нигде решения не было, мы были вольны делать это как хотели.
Я думаю, что «историю придумали IBM, а реализовали в Plan 9» берет свое начало в документации по RFC 2279. Мы были так счастливы, когда UTF-8 прижился, что никому не рассказали эту историю.

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

Итак, вся слава достается парням из X/Open и IBM за то, что они сделали это возможным и продвинули кодировку, но разработал ее Кен, и я ему помогал в этом, что бы там ни говорилось в книгах по истории.

Я попросил Расса Кокса покопаться в архивах. Прикладываю его сообщение. Я думаю, вы согласитесь, что это подтверждает историю, которую я отправил раньше. Письмо, которое мы выслали в X/Open (думаю, что Кен редактировал и рассылал этот документ) включает новый «desideratum номер 6» про обнаружение границ символов.

Мы уже не узнаем, какое влияние оказало на нас оригинальное решение от X/Open. Они хоть и отличаются, но имеют общие характерные черты. Я не помню, чтобы подробно его рассматривал, это было слишком давно (в прошлом письме он говорит, что X/Open им свой вариант реализации не показывали. прим. пер). Но я очень хорошо помню, как Кен писал наброски на салфетке и потом жалел, что мы ее не сохранили.

Нашлось несколько писем из ваших ящиков, которые выдал грепинг по строке utf.

В /usr/ken/utf/xutf я нашел копию того, что, по видимому, является исходником того не самосинхронизирующегося способа кодирования.со схемой UTF-8, добавленной в конце письма (начинается со слов «Мы определяем 7 типов byte »).

Приведенная ниже версия письма, датированная 2 сентября 23:44:10, является первой. После нескольких правок, утром 8 сентября, получилась вторая версия. Логи почтового сервера показывают, как отправляется вторая версия письма и, через некоторое время, возвращается к Кену:

Файлы из почтового архива

Далее файл с перепиской из дапма почтового сервера, который Расс Кокс приаттачил к своему, в ответ на просьбу Роберта покопаться в истории. Это «первая версия». (прим пер.)

Вот наше предложение по модификации FSS-UTF. Речь идет о том же, о чем и в предыдущем. Приношу свои извинения автору.

Код был в какой-то степени протестирован и должен быть в довольно неплохой форме. Мы переделали код Plan 9 для использования с этой кодировкой, собрались выпустить дистрибутив и отобрать пользователей университета для начального тестирования.

File System Safe Universal Character Set Transformation Format (FSS-UTF)

В связи с утверждением ISO/IEC 10646 (Unicode) в качестве международного стандарта и ожиданием широкого распространения этого Универсального Набора Кодированных символов (UCS), для операционных систем, исторически основанных на формате ASCII, необходимо разработать способы представления и обработки большого количества символов, которые можно закодировать с помощью нового стандарта. У UCS есть несколько проблем, которые нужно решить в исторически сложившихся операционных системах и среде для программирования на языке C.

(Далее в тексте несколько раз упоминаются «historical operating systems». Видимо в контексте «исторически работающие с кодировкой ASCII». Я или опускал этот эпитет, или заменял его на «существующие» и т.п. прим. пер)

Самой серьезной проблемой является схема кодирования, используемая в UCS. А именно объединение стандарта UCS с существующими языками программирования, операционными системами и утилитами. Проблемы в языках программирования и операционных системах решаются в разных отраслях, тем не менее мы все еще сталкиваемся с обработкой UCS операционными системами и утилитами.

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

UCS дает возможность закодировать многоязычный текст с помощью одного набора символов. Но UCS и UTF не защищают нулевые байты (конец строки в некоторых языках. прим. пер.) и/или слеш в ASCII /, что делает эти кодировки несовместимыми с Unix. Следующее предложение обеспечивает формат преобразования UCS, совместимый с Unix, и, таким образом, Unix-системы могут поддерживать многоязычный текст в рамках одной кодировки.

Данная кодировка формата преобразования предназначена для кодирования файлов, как промежуточный шаг к полной поддержке UCS. Однако, поскольку почти все реализации Unis сталкиваются с одинаковыми проблемами поддержки UCS, это предложение предназначено для обеспечения общей совместимости кодировки на данном этапе.

Цель/Задача

Исходя из предположения получаем, что если известны практически все проблемы обработки и хранения UCS в файловых системах ОС, то надо пользоваться таким форматом преобразования UCS, который будет работать не нарушая структуры операционной системы. Цель состоит в том, чтобы процесс преобразования формата можно было использовать для кодирования файла.

Критерии для формата преобразования

Ниже приведены рекомендации, которые должны соблюдаться, при определении формата преобразования UCS:

Предписания FSS-UTF

Предлагаемый формат преобразования UCS кодирует значения UCS в диапазоне [0,0x7fffffff] с использованием нескольких байт на один символ и длиной 1, 2, 3, 4, 5, и 6 байт. Во всех случаях кодирования более чем одним байтом начальный байт определяет количество используемых байтов, при этом в каждом байте устанавливается старший бит. Каждый байт, который не начинается с 10XXXXXX, является началом последовательности символов UCS.

Простой способ запомнить формат: количество старших единиц в первом байте означает количество байт в многобайтовом символе.

Значение символа UCD в многобайтовой кодировке — это конкатенация v-битов. Если возможно несколько способов кодирования, например UCS 0, то допустимым считается самый короткий.

Я послал его по почте, но письмо ушло в черную дыру, потому я не получил свою копию. Наверное, это интернет-адрес был в коме.

Вторая версия письма, с правками

Далее прикладывается копия письма, которая выше описывается как: «После нескольких правок, утром 8 сентября, получилась вторая версия». Повторяющаяся часть скрыта под спойлером. (прим.пер.)

Наконец-то я получил свою копию.

File System Safe Universal Character Set Transformation Format (FSS-UTF)

В связи с утверждением ISO/IEC 10646 (Unicode) в качестве международного стандарта и ожиданием широкого распространения этого Универсального Набора Кодированных символов (UCS), для операционных систем, исторически основанных на формате ASCII, необходимо разработать способы представления и обработки большого количества символов, которые можно закодировать с помощью нового стандарта. У UCS есть несколько проблем, которые нужно решить в исторически сложившихся операционных системах и среде для программирования на языке C.

Самой серьезной проблемой является схема кодирования, используемая в UCS. А именно объединение стандарта UCS с существующими языками программирования, операционными системами и утилитами. Проблемы в языках программирования и операционных системах решаются в разных отраслях, тем не менее мы все еще сталкиваемся с обработкой UCS операционными системами и утилитами.

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

UCS дает возможность закодировать многоязычный текст с помощью одного набора символов. Но UCS и UTF не защищают нулевые байты (конец строки в некоторых языках. прим. пер.) и/или слеш в ASCII /, что делает эти кодировки несовместимыми с Unix. Следующее предложение обеспечивает формат преобразования UCS, совместимый с Unix, и, таким образом, Unix-системы могут поддерживать многоязычный текст в рамках одной кодировки.

Данная кодировка формата преобразования предназначена для кодирования файлов, как промежуточный шаг к полной поддержке UCS. Однако, поскольку почти все реализации Unis сталкиваются с одинаковыми проблемами поддержки UCS, это предложение предназначено для обеспечения общей совместимости кодировки на данном этапе.

Цель/Задача

Исходя из предположения получаем, что если известны практически все проблемы обработки и хранения UCS в файловых системах ОС, то надо пользоваться таким форматом преобразования UCS, который будет работать не нарушая структуры операционной системы. Цель состоит в том, чтобы процесс преобразования формата можно было использовать для кодирования файла.

Критерии для формата преобразования

Ниже приведены рекомендации, которые должны соблюдаться, при определении формата преобразования UCS:

Предписания FSS-UTF

Предлагаемый формат преобразования UCS кодирует значения UCS в диапазоне [0,0x7fffffff] с использованием нескольких байт на один символ и длиной 1, 2, 3, 4, 5, и 6 байт. Во всех случаях кодирования более чем одним байтом начальный байт определяет количество используемых байтов, при этом в каждом байте устанавливается старший бит. Каждый байт, который не начинается с 10XXXXXX, является началом последовательности символов UCS.

Простой способ запомнить формат: количество старших единиц в первом байте означает количество байт в многобайтовом символе.

Значение символа UCD в многобайтовой кодировке — это конкатенация v-битов. Если возможно несколько способов кодирования, например UCS 0, то допустимым считается самый короткий.

Мы определяем 7 байтовых типов:

Кодирование выглядит следующим образом:

Эта короткая переписка расставила все по своим местам. Хоть и не сохранилась та «легендарная салфетка», но выдержек из архива почтового сервера хватило, чтобы сообщество признало их заслуги. В Википедию добавили имена Кена и Роберта и забавный факт про салфетку в закусочной, а в сети эта история гуляет и обсуждается «как есть», в виде простого текста, содержащего несколько писем и часть дампа из почтового сервера.

Давно забыта операционная система Plan 9, никто не помнит для чего ее писали и почему она «номер девять», а UTF-8, спустя почти тридцать лет, все еще актуальна и не собирается уходить на покой.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *