<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=UTF-32</id>
	<title>UTF-32 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=UTF-32"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=UTF-32&amp;action=history"/>
	<updated>2026-07-17T16:55:02Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=UTF-32&amp;diff=40597&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=UTF-32&amp;diff=40597&amp;oldid=prev"/>
		<updated>2026-01-24T13:50:55Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;UTF-32&amp;#039;&amp;#039;&amp;#039; ({{lang-en|Unicode Transformation Format}}) или [[UCS-4]] (универсальный набор символов, {{lang-en|Universal Character Set}}) в [[Информатика|информатике]] — один из [[набор символов|способов кодирования]] символов [[Юникод]]а, использующий для кодирования любого символа ровно 32 бита. Остальные кодировки, [[UTF-8]] и [[UTF-16]], используют для представления символов переменное число байтов. Символ UTF-32 является прямым представлением его кодовой позиции ({{нп3|Code point}}).&lt;br /&gt;
&lt;br /&gt;
Главное преимущество UTF-32 перед кодировками переменной длины заключается в том, что символы Юникод непосредственно индексируемы. Получение n-ой кодовой позиции является операцией, занимающей одинаковое время. Напротив, коды с переменной длиной требует последовательного доступа к n-ой кодовой позиции. Это делает замену символов в строках UTF-32 простой, для этого используется целое число в качестве индекса, как обычно делается для строк [[ASCII]].&lt;br /&gt;
&lt;br /&gt;
Главный недостаток UTF-32 — это неэффективное использование пространства, так как для хранения символа используется четыре байта. Символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства, редко используются в большинстве текстов. Поэтому удвоение, в сравнении с UTF-16, занимаемого строками в UTF-32 пространства, не оправдано.&lt;br /&gt;
&lt;br /&gt;
Хотя использование неменяющегося числа байтов на символ удобно, но не настолько, как кажется. Операция усечения строк реализуется легче в сравнении с UTF-8 и UTF-16. Но это не делает более быстрым нахождение конкретного смещения в строке, так как смещение может вычисляться и для кодировок фиксированного размера. Это не облегчает вычисление отображаемой ширины строки, за исключением ограниченного числа случаев, так как даже символ «фиксированной ширины» может быть получен комбинированием обычного символа с модифицирующим, который не имеет ширины. Например, буква «й» может быть получена из буквы «и» и [[Диакритические знаки|диакритического знака]] «[[Кратка|крючок над буквой]]». Сочетание таких знаков означает, что текстовые редакторы не могут рассматривать 32-битный код как единицу редактирования. Редакторы, которые ограничиваются работой с языками с письмом слева направо и [[TrueType#Составной символ|составными символами]] ({{lang-en|Precomposed character}}), могут использовать символы фиксированного размера. Но такие редакторы вряд ли поддержат символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства и вряд ли смогут работать одинаково хорошо с символами UTF-16.&lt;br /&gt;
&lt;br /&gt;
== История ==&lt;br /&gt;
Стандарт [[ISO]] 10646 определяет 31-битную форму кодировки, названную UCS-4, в которой каждый закодированный символ представлен 32-разрядным значением кода в кодовом пространстве чисел от 0 до 7FFFFFFF.&lt;br /&gt;
&lt;br /&gt;
Поскольку на самом деле используются только 17 плоскостей, то коды всех символов имеют значения от 0 до 0x10FFFF. UTF-32 — это подмножество UCS-4, которое использует только этот диапазон. Так как документ JTC1/SC2/WG2 устанавливает, что все будущие назначения символов будут ограничены нулевой (базовой) плоскостью кодового пространства или первыми 14 дополнительными плоскостями, то UTF-32 сможет представить все символы Юникода. Соответственно, UCS-4 и UTF-32 идентичны в настоящее время, за исключением того, что у стандарта UTF-32 есть дополнительная семантика Юникода.&lt;br /&gt;
&lt;br /&gt;
== Использование ==&lt;br /&gt;
UTF-32 применяется, главным образом, не в строках символов, а во внутренних [[API]], где данные являются единственной кодовой позицией или [[Глиф|глифом]]. Например, при прорисовке текста на последнем шаге происходит построение списка структур, каждая из которых включает в себя позиции x и у, атрибуты и единственный символ UTF-32, идентифицирующий глиф для прорисовки. Часто в «неиспользуемых» 11 битах каждого 32-битного символа хранится посторонняя информация.&lt;br /&gt;
&lt;br /&gt;
UTF-32 используются для хранения строк в [[Unix]] в том случае, когда тип [[Широкий символ|wchar_t]] определён как 32-битный.&lt;br /&gt;
Программы на [[Python]] версии по 3.2 включительно могли быть откомпилированы для использования UTF-32 вместо UTF-16. С версии 3.3 поддержка UTF-16 была удалена, и строки хранятся в UTF-32, но лидирующие нули оптимизируются в случае их неиспользования.&lt;br /&gt;
В ОС [[Windows]], в которой тип wchar_t имеет размер 16 бит, строки UTF-32 почти не используются.&lt;br /&gt;
&lt;br /&gt;
== Неиспользование UTF-32 в HTML5 ==&lt;br /&gt;
Стандарт [[HTML5]] гласит, что «авторы не должны использовать UTF-32, поскольку алгоритмы определения кодировки, описанные в данной спецификации, не отличают его от UTF-16».&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://www.unicode.org/ Полное описание стандарта Unicode] {{ref|en}}&lt;br /&gt;
&lt;br /&gt;
{{Кодировки символов}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Юникод]]&lt;br /&gt;
[[Категория:Компьютерные кодировки]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>