Юникод: различия между версиями

742 байта добавлено ,  1 год назад
Спасено источников — 10, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ. #IABot (v2.0beta15)
(→‎Версии Юникода: дополнение)
(Спасено источников — 10, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ. #IABot (v2.0beta15))
[[Файл:Unicode logo.svg|thumb|right|Логотип Unicode Consortium]]
 
'''Юнико́д'''<ref name=autogenerated1>{{cite web|url=http://www.unicode.org/standard/UnicodeTranscriptions.html|title=Unicode Transcriptions|publisher=|date=|accessdate=10 мая 2010|lang=en|archiveurl=https://web.archive.org/web/20060408204540/http://www.webcitationunicode.org/618OOcYRYstandard/UnicodeTranscriptions.html|archivedate=20112006-0804-2208|deadlink=yes}}</ref> (чаще всего) или '''Унико́д'''<ref>[http://www.paratype.ru/help/term/terms.asp?code=361 Уникод в словаре Paratype]</ref> ({{lang-en|Unicode}}) — стандарт [[Набор символов|кодирования символов]], включающий в себя знаки почти всех письменных [[язык]]ов мира<ref name="unicode-techintro">{{cite web|url=http://www.unicode.org/standard/principles.html|title=The Unicode® Standard: A Technical Introduction|accessdate=2010-07-04|archiveurl=https://web.archive.org/web/20100310120125/http://www.webcitationunicode.org/618OPFD0istandard/principles.html|archivedate=20112010-0803-2210|deadlink=yes}}</ref>. В настоящее время стандарт является доминирующим в [[Интернет|Интернете]].
 
Стандарт предложен в [[1991 год]]у некоммерческой организацией «Консорциум Юникода» ({{lang-en|Unicode Consortium, Unicode Inc.}})<ref>{{cite web|url=http://www.unicode.org/history/publicationdates.html|title=History of Unicode Release and Publication Dates|accessdate=2010-07-04|archiveurl=https://web.archive.org/web/20100110085403/http://www.webcitationunicode.org/618OPfL5zhistory/publicationdates.html|archivedate=20112010-0801-2210|deadlink=yes}}</ref><ref>{{cite web|url=http://www.unicode.org/consortium/consort.html|title=The Unicode Consortium|accessdate=2010-07-04|archiveurl=https://web.archive.org/web/20100627085503/http://www.webcitationunicode.org/618OQ5Syrconsortium/consort.html|archivedate=20112010-0806-2227|deadlink=yes}}</ref>. Применение этого стандарта позволяет закодировать очень большое число символов из разных систем письменности: в документах, закодированных по стандарту Юникод, могут соседствовать китайские [[иероглиф]]ы, математические символы, буквы [[греческий алфавит|греческого алфавита]], [[латинский алфавит|латиницы]] и [[кириллица|кириллицы]], символы музыкальной нотной нотации, при этом становится ненужным переключение [[кодовая страница|кодовых страниц]]<ref name="unicode-foreword">{{cite web|url=http://www.unicode.org/versions/Unicode5.2.0/Foreword.pdf|title=Foreword|accessdate=2010-07-04|archiveurl=https://web.archive.org/web/20100627141434/http://www.webcitationunicode.org/618OQVqZNversions/Unicode5.2.0/Foreword.pdf|archivedate=20112010-0806-2227|deadlink=yes}}</ref>.
 
Стандарт состоит из двух основных частей: универсального набора символов ({{lang-en|Universal character set, UCS}}) и семейства кодировок ({{lang-en|Unicode transformation format, UTF}}). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом <code>U+</code>, например, <code>U+040F</code>. Семейство кодировок определяет способы преобразования кодов символов для передачи в потоке или в файле.
 
Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора [[ASCII]], и коды этих символов совпадают с их кодами в ASCII. Далее расположены области символов других систем письменности, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем<ref name='unicode-02'>{{cite web|url=http://www.unicode.org/versions/Unicode5.2.0/ch02.pdf|title=General Structure|accessdate=2010-07-05|archiveurl=https://web.archive.org/web/20100627093139/http://www.webcitationunicode.org/618OQvPSLversions/Unicode5.2.0/ch02.pdf|archivedate=20112010-0806-2227|deadlink=yes}}</ref>. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F (см. [[Кириллица в Юникоде]])<ref>{{cite web|url=http://www.unicode.org/versions/Unicode5.2.0/ch07.pdf|title=European Alphabetic Scripts|accessdate=2010-07-04|archiveurl=https://web.archive.org/web/20100627140856/http://www.webcitationunicode.org/618ORPqRVversions/Unicode5.2.0/ch07.pdf|archivedate=20112010-0806-2227|deadlink=yes}}</ref>.
 
== Предпосылки создания и развитие Юникода ==
'''Проблема ограниченности набора символов'''<ref name='unicode-foreword' />. Проблему можно было решить либо переключением шрифтов внутри документа, либо внедрением «широкой» кодировки. Переключение шрифтов издавна практиковалось в [[текстовый процессор|текстовых процессорах]], причём часто использовались [[нестандартные шрифты|шрифты с нестандартной кодировкой]], т. н. «dingbat fonts». В итоге при попытке переноса документа в другую систему все нестандартные символы превращались в «кракозябры».
 
'''Проблема преобразования одной кодировки в другую'''. Проблему можно было решить либо составлением таблиц перекодировки для каждой пары кодировок, либо использованием промежуточного преобразования в третью кодировку, включающую все символы всех кодировок<ref>{{cite web|url=http://www.unicode.org/history/unicode88.pdf|title=Unicode 88|accessdate=2010-07-08|archiveurl=https://wwwweb.webcitationarchive.org/618ORt6dfweb/20170906035012/http://unicode.org/history/unicode88.pdf|archivedate=20112017-0809-2206|deadlink=yes}}</ref>.
 
'''Проблема дублирования шрифтов'''. Для каждой кодировки создавался свой шрифт, даже если наборы символов в кодировках совпадали частично или полностью. Проблему можно было решить путём создания «больших» шрифтов, из которых впоследствии выбирались бы нужные для данной кодировки символы. Однако это требовало создания единого реестра символов, чтобы определять, чему что соответствует.
В дальнейшем, однако, было принято решение кодировать все символы и в связи с этим значительно расширить кодовую область. Одновременно с этим, коды символов стали рассматриваться не как 16-битные значения, а как абстрактные числа, которые в компьютере могут представляться множеством разных способов (см. [[#Способы представления|способы представления]]).
 
Поскольку в ряде компьютерных систем (например, [[Windows NT]]<ref name="windows-nt">{{cite web|url=http://support.microsoft.com/kb/99884|title=Unicode and Microsoft Windows NT|work=Microsoft Support|lang=en|archiveurl=https://wwwweb.webcitationarchive.org/618OSVei1web/20090926092654/http://support.microsoft.com/kb/99884|archivedate=20112009-0809-2226|accessdate=2009-11-12|deadlink=yes}}</ref>) фиксированные 16-битные символы уже использовались в качестве кодировки по умолчанию, было решено все наиболее важные знаки кодировать только в пределах первых {{formatnum:65536}} позиций (так называемая {{lang-en|basic multilingual plane, BMP}}). Остальное пространство используется для «дополнительных символов» ({{lang-en|supplementary characters}}): систем письма вымерших языков или очень редко используемых [[китай]]ских иероглифов, математических и музыкальных символов.
 
Для совместимости со старыми 16-битными системами была изобретена система [[UTF-16]], где первые {{formatnum:65536}} позиций, за исключением позиций из интервала U+D800…U+DFFF, отображаются непосредственно как 16-битные числа, а остальные представляются в виде «суррогатных пар» (первый элемент пары из области U+D800…U+DBFF, второй элемент пары из области U+DC00…U+DFFF). Для суррогатных пар была использована часть кодового пространства (2048 позиций), отведённого «для частного использования».
Хотя кодовая область Юникода была расширена за пределы 2<sup>16</sup> уже в версии 2.0, первые символы в «верхней» области были размещены только в версии 3.1.
 
Роль этой кодировки в веб-секторе постоянно растёт. На начало 2010 доля веб-сайтов, использующих Юникод, составила около 50 %<ref>{{cite web|url=http://w3pro.ru/news/unicode-ispolzuetsya-pochti-na-50-veb-saitov|title=Unicode используется почти на 50% веб-сайтов|lang=ru|archiveurl=https://wwwweb.webcitationarchive.org/618OTTP1Tweb/20100611042601/http://w3pro.ru/news/unicode-ispolzuetsya-pochti-na-50-veb-saitov|archivedate=20112010-0806-2211|accessdate=2010-02-09|deadlink=yes}}</ref>.
 
== Версии Юникода ==