<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=83.220.238.50&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=83.220.238.50&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/83.220.238.50"/>
		<updated>2026-06-08T18:52:12Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA&amp;diff=72834</id>
		<title>Представление символов, таблицы кодировок</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D0%BA&amp;diff=72834"/>
				<updated>2020-03-04T10:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;83.220.238.50: Пять бит могут кодировать 2^5 символов; это 32, а не 64&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Представление символов в вычислительных машинах ==&lt;br /&gt;
&lt;br /&gt;
В вычислительных машинах символы не могут храниться иначе, как в виде последовательностей бит (как и числа). Для передачи символа и его корректного отображения ему должна соответствовать уникальная последовательность нулей и единиц. Для этого были разработаны таблицы кодировок.&lt;br /&gt;
&lt;br /&gt;
Количество символов, которые можно задать последовательностью бит длины &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, задается простой формулой &amp;lt;tex&amp;gt;C(n) = 2^n&amp;lt;/tex&amp;gt;. Таким образом, от нужного количества символов напрямую зависит количество используемой памяти.&lt;br /&gt;
&lt;br /&gt;
== Таблицы кодировок ==&lt;br /&gt;
&lt;br /&gt;
На заре компьютерной эры на каждый символ было отведено по пять бит. Это было связано с малым количеством оперативной памяти на компьютерах тех лет. В эти &amp;lt;tex&amp;gt;32&amp;lt;/tex&amp;gt; символа входили только управляющие символы и строчные буквы английского алфавита.&lt;br /&gt;
&lt;br /&gt;
С ростом производительности компьютеров стали появляться таблицы кодировок с большим количеством символов.&lt;br /&gt;
Первой семибитной кодировкой стала ASCII7. В нее уже вошли прописные буквы английского алфавита, арабские цифры, знаки препинания.&lt;br /&gt;
Затем на ее базе была разработана ASCII8, в которым уже стало возможным хранение &amp;lt;tex&amp;gt;256&amp;lt;/tex&amp;gt; символов: &amp;lt;tex&amp;gt;128&amp;lt;/tex&amp;gt; основных и еще столько же расширенных. Первая часть таблицы осталась без изменений, а вторая может иметь различные варианты (каждый имеет свой номер). Эта часть таблицы стала заполняться символами национальных алфавитов.&lt;br /&gt;
&lt;br /&gt;
Но для многих языков (например, арабского, японского, китайского) &amp;lt;tex&amp;gt;256&amp;lt;/tex&amp;gt; символов недостаточно, поэтому развитие кодировок продолжалось, что привело к появлению UNICODE.&lt;br /&gt;
&lt;br /&gt;
==Кодировки стандарта ASCII==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition='''ASCII''' {{---}} таблицы кодировок, в которых содержатся основные символы (английский алфавит, цифры, знаки препинания, символы национальных алфавитов(свои для каждого региона), служебные символы) и длина кода каждого символа &amp;lt;tex&amp;gt;n = 8&amp;lt;/tex&amp;gt; бит.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;tex&amp;gt;7&amp;lt;/tex&amp;gt; бит:'''&lt;br /&gt;
* '''ASCII7''' {{---}} первая кодировка, пригодная для работы с текстом. Помимо маленьких букв английского алфавита и служебных символов, содержит большие буквы английского языка, цифры, знаки препинания и другие символы.&lt;br /&gt;
&lt;br /&gt;
'''Кодировки стандарта ASCII (&amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt; бит):'''&lt;br /&gt;
* '''ASCII''' {{---}} первая кодировка, в которой стало возможно использовать символы национальных алфавитов.&lt;br /&gt;
* '''КОИ8-R''' {{---}} первая русская кодировка. Символы кириллицы расположены не в алфавитном порядке. Их разместили в верхнюю половину таблицы так, чтобы позиции кириллических символов соответствовали их фонетическим аналогам в английском алфавите. Это значит, что даже при потере старшего бита каждого символа, например, при проходе через устаревший семибитный модем, текст остается &amp;quot;читаемым&amp;quot;.&lt;br /&gt;
* '''CP866''' {{---}} русская кодировка, использовавшаяся на компьютерах IBM в системе DOS.&lt;br /&gt;
* '''Windows-1251''' {{---}} русская кодировка, использовавшаяся в русскоязычных версиях операционной системы Windows в начале 90-х годов. Кириллические символы идут в алфавитном порядке. Содержит все символы, встречающиеся в типографике обычного текста (кроме знака ударения).&lt;br /&gt;
===Структурные свойства таблицы===&lt;br /&gt;
* Цифры 0-9 представляются своими двоичными значениями (например, &amp;lt;tex&amp;gt;5=0101_2&amp;lt;/tex&amp;gt;), перед которыми стоит &amp;lt;tex&amp;gt;0011_2&amp;lt;/tex&amp;gt;. Таким образом, двоично-десятичные числа (BCD) превращаются в ASCII-строку с помощью простого добавления слева &amp;lt;tex&amp;gt;0011_2&amp;lt;/tex&amp;gt; к каждому двоично-десятичному полубайту.&lt;br /&gt;
* Буквы A-Z верхнего и нижнего регистров различаются в своём представлении только одним битом, что упрощает преобразование регистра и проверку на диапазон. Буквы представляются своими порядковыми номерами в алфавите, записанными в двоичной системе счисления, перед которыми стоит &amp;lt;tex&amp;gt;0100_2&amp;lt;/tex&amp;gt; (для букв верхнего регистра) или &amp;lt;tex&amp;gt;0110_2&amp;lt;/tex&amp;gt; (для букв нижнего регистра).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;text-align: center; font-family: monospace&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! width=&amp;quot;4%&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | 0 || width=&amp;quot;6%&amp;quot; | 1&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | 2 || width=&amp;quot;6%&amp;quot; | 3&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | 4 || width=&amp;quot;6%&amp;quot; | 5&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | 6 || width=&amp;quot;6%&amp;quot; | 7&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | 8 || width=&amp;quot;6%&amp;quot; | 9&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | A || width=&amp;quot;6%&amp;quot; | B&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | C || width=&amp;quot;6%&amp;quot; | D&lt;br /&gt;
 ! width=&amp;quot;6%&amp;quot; | E || width=&amp;quot;6%&amp;quot; | F&lt;br /&gt;
 |-&lt;br /&gt;
 ! 0&lt;br /&gt;
 | NUL || SOH || STX || ETX&lt;br /&gt;
 | EOT || ENQ || ACK || BEL&lt;br /&gt;
 | BS  || TAB || LF  || VT&lt;br /&gt;
 | FF  || CR  || SO  || SI&lt;br /&gt;
 |-&lt;br /&gt;
 ! 1&lt;br /&gt;
 | DLE || DC1 || DC2 || DC3&lt;br /&gt;
 | DC4 || NAK || SYN || ETB&lt;br /&gt;
 | CAN || EM  || SUB || ESC&lt;br /&gt;
 | FS  || GS  || RS  || US&lt;br /&gt;
 |-&lt;br /&gt;
 ! 2&lt;br /&gt;
 | &amp;amp;nbsp; || ! || &amp;quot; || #&lt;br /&gt;
 | $ || % || &amp;amp; || '&lt;br /&gt;
 | ( || ) || * || +&lt;br /&gt;
 | , || - || . || /&lt;br /&gt;
 |-&lt;br /&gt;
 ! 3&lt;br /&gt;
 | 0 || 1 || 2 || 3&lt;br /&gt;
 | 4 || 5 || 6 || 7&lt;br /&gt;
 | 8 || 9 || : || ;&lt;br /&gt;
 | &amp;amp;lt; || = || &amp;amp;gt; || ?&lt;br /&gt;
 |-&lt;br /&gt;
 ! 4&lt;br /&gt;
 | @ || A || B || C&lt;br /&gt;
 | D || E || F || G&lt;br /&gt;
 | H || I || J || K&lt;br /&gt;
 | L || M || N || O&lt;br /&gt;
 |-&lt;br /&gt;
 ! 5&lt;br /&gt;
 | P || Q || R || S&lt;br /&gt;
 | T || U || V || W&lt;br /&gt;
 | X || Y || Z || [&lt;br /&gt;
 | \ || ] || ^ || _&lt;br /&gt;
 |-&lt;br /&gt;
 ! 6&lt;br /&gt;
 | ` || a || b || c&lt;br /&gt;
 | d || e || f || g&lt;br /&gt;
 | h || i || j || k&lt;br /&gt;
 | l || m || n || o&lt;br /&gt;
 |-&lt;br /&gt;
 ! 7&lt;br /&gt;
 | p || q || r || s&lt;br /&gt;
 | t || u || v || w&lt;br /&gt;
 | x || y || z || {&lt;br /&gt;
 | &amp;amp;#124; || } || ~ || DEL&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==Кодировки стандарта UNICODE==&lt;br /&gt;
&lt;br /&gt;
'''Юникод''' или '''Уникод'''  (англ. ''Unicode'') {{---}} это промышленный стандарт обеспечивающий цифровое представление символов всех письменностей мира, и специальных символов.&lt;br /&gt;
&lt;br /&gt;
Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. ''Unicode Consortium, Unicode Inc.''). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей.&lt;br /&gt;
Стандарт состоит из двух основных разделов: '''универсальный набор символов''' (англ. ''UCS, universal character set'') и семейство кодировок (англ. ''UTF, Unicode transformation format''). '''Универсальный набор символов''' задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа.Семейство кодировок определяет машинное представление последовательности кодов UCS.&lt;br /&gt;
&lt;br /&gt;
Коды в стандарте Unicode разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F. Часть кодов зарезервирована для использования в будущем.&lt;br /&gt;
===Кодовое пространство===&lt;br /&gt;
Хотя формы записи UTF-8 и UTF-32 позволяют кодировать до &amp;lt;tex&amp;gt;2^{31}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;(2\ 147\ 483\ 648)&amp;lt;/tex&amp;gt; кодовых позиций, было принято решение использовать лишь &amp;lt;tex&amp;gt;1\ 112\ 064&amp;lt;/tex&amp;gt; для совместимости с UTF-16. Впрочем, даже и этого на текущий момент более чем достаточно — в версии 6.0 используется чуть менее &amp;lt;tex&amp;gt;110\ 000&amp;lt;/tex&amp;gt; кодовых позиций (&amp;lt;tex&amp;gt;109\ 242&amp;lt;/tex&amp;gt; графических и &amp;lt;tex&amp;gt;273&amp;lt;/tex&amp;gt; прочих символов).&lt;br /&gt;
&lt;br /&gt;
Кодовое пространство разбито на &amp;lt;tex&amp;gt;17&amp;lt;/tex&amp;gt; плоскостей (англ. ''planes'') по &amp;lt;tex&amp;gt;2^{16}&amp;lt;/tex&amp;gt; &amp;lt;tex&amp;gt;(65\ 536)&amp;lt;/tex&amp;gt; символов. Нулевая плоскость называется базовой, в ней расположены символы наиболее употребительных письменностей. Первая плоскость используется, в основном, для исторических письменностей, вторая {{---}} для для редко используемых иероглифов китайского письма, третья зарезервирована для архаичных китайских иероглифов. Плоскости &amp;lt;tex&amp;gt;15&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt; выделены для частного употребления.&lt;br /&gt;
&lt;br /&gt;
Для обозначения символов Unicode используется запись вида «U+xxxx» (для кодов &amp;lt;tex&amp;gt;0000_{16}..FFFF_{16}&amp;lt;/tex&amp;gt;) или «U+xxxxx» (для кодов &amp;lt;tex&amp;gt;10000_{16}..FFFFF_{16}&amp;lt;/tex&amp;gt;) или «U+xxxxxx» (для кодов &amp;lt;tex&amp;gt;100000_{16}..10FFFF_{16}&amp;lt;/tex&amp;gt;), где xxx — шестнадцатеричные цифры. Например, символ «я» (U+044F) имеет код &amp;lt;tex&amp;gt;044F_{16} = 1103_{10}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable collapsible collapsed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Плоскости Юникода&lt;br /&gt;
|-&lt;br /&gt;
! Плоскость !! Название !! Диапазон символов&lt;br /&gt;
|-&lt;br /&gt;
| Plane 0 || Basic multilingual plane (BMP) || U+0000…U+​FFFF&lt;br /&gt;
|-&lt;br /&gt;
| Plane 1 || Supplementary multilingual plane (SMP) || U+10000…U+​1FFFF&lt;br /&gt;
|-&lt;br /&gt;
| Plane 2 || Supplementary ideographic plane (SIP) || U+20000…U+​2FFFF&lt;br /&gt;
|-&lt;br /&gt;
| Planes 3-13 || Unassigned || U+30000…U+​DFFFF&lt;br /&gt;
|-&lt;br /&gt;
| Plane 14 || Supplement­ary special-purpose plane (SSP) || U+E0000…U+​EFFFF&lt;br /&gt;
|-&lt;br /&gt;
| Planes 15-16 || Supplement­ary private use area (S PUA A/B) || U+F0000…U+​10FFFF&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Модифицирующие символы===&lt;br /&gt;
[[Файл:Ji.png|thumb|right| 250px]]&lt;br /&gt;
Графические символы в Юникоде делятся на протяжённые и непротяжённые. Непротяжённые символы при отображении не занимают дополнительного места в строке. К примеру, к ним относятся знак ударения. Протяжённые и непротяжённые символы имеют собственные коды, но последние не могут встречаться самостоятельно. Протяжённые символы называются базовыми (англ. ''base characters''), а непротяженные {{---}} модифицирующими (англ. ''combining characters''). Например символ «Й» (U+0419) может быть представлен в виде базового символа «И» (U+0418) и модифицирующего символа « ̆» (U+0306). &lt;br /&gt;
&lt;br /&gt;
===Способы представления===&lt;br /&gt;
Юникод имеет несколько форм представления (англ. ''Unicode Transformation Format, UTF''): UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт.&lt;br /&gt;
&lt;br /&gt;
===UTF-8===&lt;br /&gt;
UTF-8 {{---}} представление Юникода, обеспечивающее наилучшую совместимость со старыми системами, использовавшими &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt;-битные символы. Текст, состоящий только из символов с номером меньше &amp;lt;tex&amp;gt;128&amp;lt;/tex&amp;gt;, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше &amp;lt;tex&amp;gt;128&amp;lt;/tex&amp;gt; изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от двух до шести байт (на деле, только до четырех байт, поскольку в Юникоде нет символов с кодом больше &amp;lt;tex&amp;gt;10FFFF_{16}&amp;lt;/tex&amp;gt;, и вводить их в будущем не планируется), в которых первый байт всегда имеет вид &amp;lt;tex&amp;gt;11xxxxxx&amp;lt;/tex&amp;gt;, а остальные — &amp;lt;tex&amp;gt;10xxxxxx&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Символы UTF-8 получаются из Unicode cледующим образом:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Unicode||UTF-8||Представленные символы&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00000000&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;0x0000007F&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;0xxxxxxx&amp;lt;/code&amp;gt;||ASCII, в том числе английский алфавит, простейшие знаки препинания и арабские цифры&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00000080&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;0x000007FF&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;110xxxxx 10xxxxxx&amp;lt;/code&amp;gt;||кириллица, расширенная латиница, арабский алфавит, армянский алфавит, греческий алфавит, еврейский алфавит и коптский алфавит; сирийское письмо, тана, нко; Международный фонетический алфавит; некоторые знаки препинания&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00000800&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;0x0000FFFF&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;1110xxxx 10xxxxxx 10xxxxxx&amp;lt;/code&amp;gt;||все другие современные формы письменности, в том числе грузинский алфавит, индийское, китайское, корейское и японское письмо; сложные знаки препинания; математические и другие специальные символы&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x00010000&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;0x001FFFFF&amp;lt;/code&amp;gt;||&amp;lt;code&amp;gt;11110xxx 10xxxxxx 10xxxxxx 10xxxxxx&amp;lt;/code&amp;gt;||музыкальные символы, редкие китайские иероглифы, вымершие формы письменности&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|||&amp;lt;code&amp;gt;111111xx&amp;lt;/code&amp;gt;||служебные символы c, d, e, f&lt;br /&gt;
|}&lt;br /&gt;
Несмотря на то, что UTF-8 позволяет указать один и тот же символ несколькими способами, только наиболее короткий из них правильный. Остальные формы, называемые overlong sequence, отвергаются по соображениям безопасности.&lt;br /&gt;
&lt;br /&gt;
====Принцип кодирования====&lt;br /&gt;
=====Правила записи кода одного символа в UTF-8=====&lt;br /&gt;
1. Если размер символа в кодировке UTF-8 = &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; байт&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Код имеет вид (0aaa aaaa), где «0» — просто ноль, остальные биты «a» — это код символа в кодировке ASCII;&lt;br /&gt;
&lt;br /&gt;
2. Если размер символа в кодировке в UTF-8 &amp;lt;tex&amp;gt;&amp;gt; 1&amp;lt;/tex&amp;gt; байт (то есть от &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;6&amp;lt;/tex&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
: 2.1 Первый байт содержит количество байт символа, закодированное в '''единичной''' системе счисления;&lt;br /&gt;
&lt;br /&gt;
 2 — 11&lt;br /&gt;
 3 — 111&lt;br /&gt;
 4 — 1111&lt;br /&gt;
 5 — 1111 1&lt;br /&gt;
 6 — 1111 11&lt;br /&gt;
&lt;br /&gt;
: 2.2 «0» — бит терминатор, означающий завершение кода размера&lt;br /&gt;
&lt;br /&gt;
: 2.3 далее идут значащие байты кода, которые имеют вид (10xx xxxx), где «10» — биты признака продолжения, а «x» — значащие биты.&lt;br /&gt;
&lt;br /&gt;
В общем случае варианты представления '''одного символа''' в кодировке UTF-8 выглядят так:&lt;br /&gt;
 (1 байт)  0aaa aaaa &lt;br /&gt;
 (2 байта) 110x xxxx 10xx xxxx&lt;br /&gt;
 (3 байта) 1110 xxxx 10xx xxxx 10xx xxxx&lt;br /&gt;
 (4 байта) 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx&lt;br /&gt;
 (5 байт)  1111 10xx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx&lt;br /&gt;
 (6 байт)  1111 110x 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx 10xx xxxx&lt;br /&gt;
&lt;br /&gt;
=====Определение длины кода в UTF-8=====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Количество байт UTF-8 !! Количество значащих бит&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt; || &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;7&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt; || &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;11&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;3&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt; || &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt; || &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;21&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;5&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt; || &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;26&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;6&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt; || &amp;lt;center&amp;gt;&amp;lt;tex&amp;gt;31&amp;lt;/tex&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
В общем случае количество значащих бит &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt;, кодируемых &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; байтами UTF-8, определяется по формуле:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;C = 7&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n=1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;C = n\cdot5+1&amp;lt;/tex&amp;gt; при &amp;lt;tex&amp;gt;n&amp;gt;1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UTF-16===&lt;br /&gt;
UTF-16 {{---}} один из способов кодирования '''символов''' (англ. ''code point'') из Unicode в виде последовательности &amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt;-битных '''слов''' (англ. ''code unit''). Данная кодировка позволяет записывать символы Юникода в диапазонах U+0000..U+D7FF и U+E000..U+10FFFF (общим количеством &amp;lt;tex&amp;gt;1\ 112\ 064&amp;lt;/tex&amp;gt;), причем &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt;-байтные символы представляются как есть, а более длинные {{---}} с помощью суррогатных пар (англ. ''surrogate pair''), для которых и вырезан диапазон &amp;lt;tex&amp;gt;D800_{16}..DFFF_{16}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В UTF-16 символы кодируются двухбайтовыми словами с использованием всех возможных диапазонов значений (от &amp;lt;tex&amp;gt;0000_{16}&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;FFFF_{16}&amp;lt;/tex&amp;gt;). При этом можно кодировать символы Unicode в дипазонах &amp;lt;tex&amp;gt;0000_{16}..D7FF_{16}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;E000_{16}..10FFFF_{16}&amp;lt;/tex&amp;gt;. Исключенный отсюда диапазон &amp;lt;tex&amp;gt;D800_{16}..DFFF_{16}&amp;lt;/tex&amp;gt; используется как раз для кодирования так называемых суррогатных пар — символов, которые кодируются двумя &amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt;-битными словами. Символы Unicode до &amp;lt;tex&amp;gt;FFFF_{16}&amp;lt;/tex&amp;gt; включительно (исключая диапазон для суррогатов) записываются как есть &amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt;-битным словом. Символы же в диапазоне &amp;lt;tex&amp;gt;10000_{16}..10FFFF_{16}&amp;lt;/tex&amp;gt; (больше &amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt; бит) уже кодируются парой &amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt;-битных слов. Для этого их код арифметически сдвигается до нуля (из него вычитается минимальное число &amp;lt;tex&amp;gt;10000_{16}&amp;lt;/tex&amp;gt;). В результате получится значение от нуля до &amp;lt;tex&amp;gt;FFFF_{16}&amp;lt;/tex&amp;gt;, которое занимает до &amp;lt;tex&amp;gt;20&amp;lt;/tex&amp;gt; бит. Старшие &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt; бит этого значения идут в лидирующее (первое) слово, а младшие &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt; бит — в последующее (второе). При этом в обоих словах старшие &amp;lt;tex&amp;gt;6&amp;lt;/tex&amp;gt; бит используются для обозначения суррогата. Биты с &amp;lt;tex&amp;gt;11&amp;lt;/tex&amp;gt; по &amp;lt;tex&amp;gt;15&amp;lt;/tex&amp;gt; имеют значения &amp;lt;tex&amp;gt;11011_2&amp;lt;/tex&amp;gt;, а &amp;lt;tex&amp;gt;10&amp;lt;/tex&amp;gt;-й бит содержит &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; у лидирующего слова и &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; — у последующего. В связи с этим можно легко определить к чему относится каждое слово.&lt;br /&gt;
&lt;br /&gt;
====UTF-16LE и UTF-16BE====&lt;br /&gt;
Один символ кодировки UTF-16 представлен последовательностью двух байт или двух пар байт. Который из двух идёт впереди, старший или младший, зависит от порядка байт. Подробнее об этом будет сказано ниже.&lt;br /&gt;
&lt;br /&gt;
===UTF-32===&lt;br /&gt;
UTF-32 {{---}} один из способов кодирования символов из Юникод, использующий для кодирования любого символа ровно &amp;lt;tex&amp;gt;32&amp;lt;/tex&amp;gt; бита. Остальные кодировки, UTF-8 и UTF-16, используют для представления символов переменное число байт. Символ UTF-32 является прямым представлением его кодовой позиции (англ. ''code point'').&lt;br /&gt;
&lt;br /&gt;
Главное преимущество UTF-32 перед кодировками переменной длины заключается в том, что символы Юникод непосредственно индексируемы. Получение &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-ой кодовой позиции является операцией, занимающей одинаковое время. Напротив, коды с переменной длиной требует последовательного доступа к &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;-ой кодовой позиции. Это делает замену символов в строках 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. Но это не делает более быстрым нахождение конкретного смещения в строке, так как смещение может вычисляться и для кодировок фиксированного размера. Это не облегчает вычисление отображаемой ширины строки, за исключением ограниченного числа случаев, так как даже символ «фиксированной ширины» может быть получен комбинированием обычного символа с модифицирующим, который не имеет ширины. Например, буква «й» может быть получена из буквы «и» и диакритического знака «крючок над буквой». Сочетание таких знаков означает, что текстовые редакторы не могут рассматривать &amp;lt;tex&amp;gt;32&amp;lt;/tex&amp;gt;-битный код как единицу редактирования. Редакторы, которые ограничиваются работой с языками с письмом слева направо и составными символами (англ. ''Precomposed character''), могут использовать символы фиксированного размера. Но такие редакторы вряд ли поддержат символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства и вряд ли смогут работать одинаково хорошо с символами UTF-16.&lt;br /&gt;
&lt;br /&gt;
===Порядок байт===&lt;br /&gt;
В современной вычислительной технике и цифровых системах связи информация обычно представлена в виде последовательности байт. В том случае, если число не может быть представлено одним байтом, имеет значение в каком порядке байты записываются в памяти компьютера или передаются по линиям связи. Часто выбор порядка записи байт произволен и определяется только соглашениями.&lt;br /&gt;
&lt;br /&gt;
В общем случае, для представления числа &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;, большего &amp;lt;tex&amp;gt;255&amp;lt;/tex&amp;gt; (здесь &amp;lt;tex&amp;gt;255=2^8-1&amp;lt;/tex&amp;gt; — максимальное целое число, записываемое одним байтом), приходится использовать несколько байт. При этом число &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt; записывается в позиционной системе счисления по основанию &amp;lt;tex&amp;gt;256&amp;lt;/tex&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;M = \sum_{i=0}^{n}A_i\cdot 256^i=A_0\cdot 256^0+A_1\cdot 256^1+A_2\cdot 256^2+\dots+A_n\cdot 256^n.&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Набор целых чисел &amp;lt;tex&amp;gt;A_0,\dots,A_n&amp;lt;/tex&amp;gt;, каждое из которых лежит в интервале от &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; до &amp;lt;tex&amp;gt;255&amp;lt;/tex&amp;gt;, является последовательностью байт, составляющих &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;. При этом &amp;lt;tex&amp;gt;A_0&amp;lt;/tex&amp;gt; называется младшим байтом, а &amp;lt;tex&amp;gt;A_n&amp;lt;/tex&amp;gt; — старшим байтом числа &amp;lt;tex&amp;gt;M&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Варианты записи====&lt;br /&gt;
=====Порядок от старшего к младшему=====&lt;br /&gt;
Порядок от старшего к младшему (англ. ''big-endian''): &amp;lt;tex&amp;gt;A_n,\dots,A_0&amp;lt;/tex&amp;gt;, запись начинается со старшего и заканчивается младшим. Этот порядок является стандартным для протоколов TCP/IP, он используется в заголовках пакетов данных и во многих протоколах более высокого уровня, разработанных для использования поверх TCP/IP. Поэтому, порядок байт от старшего к младшему часто называют сетевым порядком байт (англ. ''network byte order''). Этот порядок байт используется процессорами IBM 360/370/390, Motorola 68000, SPARC (отсюда третье название — порядок байт Motorola, Motorola byte order).&lt;br /&gt;
&lt;br /&gt;
В этом же виде (используя представление в десятичной системе счисления) записываются числа индийско-арабскими цифрами в письменностях с порядком знаков слева направо (латиница, кириллица). Для письменностей с обратным порядком (арабская) та же запись числа воспринимается как «от младшего к старшему».&lt;br /&gt;
&lt;br /&gt;
Порядок байт от старшего к младшему применяется во многих форматах файлов — например, PNG, FLV, EBML.&lt;br /&gt;
&lt;br /&gt;
=====Порядок от младшего к старшему=====&lt;br /&gt;
Порядок от младшего к старшему (англ. ''little-endian''): &amp;lt;tex&amp;gt;A_0,\dots,A_n&amp;lt;/tex&amp;gt;, запись начинается с младшего и заканчивается старшим. Этот порядок записи принят в памяти персональных компьютеров с x86-процессорами, в связи с чем иногда его называют интеловский порядок байт (по названию фирмы-создателя архитектуры x86).&lt;br /&gt;
&lt;br /&gt;
В противоположность порядку big-endian, соглашение little-endian поддерживают меньше кросс-платформенных протоколов и форматов данных; существенные исключения: USB, конфигурация PCI, таблица разделов GUID, рекомендации FidoNet.&lt;br /&gt;
&lt;br /&gt;
=====Переключаемый порядок=====&lt;br /&gt;
Многие процессоры могут работать и в порядке от младшего к старшему, и в обратном, например, ARM, PowerPC (но не PowerPC 970), DEC Alpha, MIPS, PA-RISC и IA-64. Обычно порядок байт выбирается программно во время инициализации операционной системы, но может быть выбран и аппаратно перемычками на материнской плате. В этом случае правильнее говорить о порядке байт операционной системы. Переключаемый порядок байт иногда называют англ. ''bi-endian''.&lt;br /&gt;
&lt;br /&gt;
=====Смешанный порядок=====&lt;br /&gt;
Смешанный порядок байт (англ. ''middle-endian'') иногда используется при работе с числами, длина которых превышает машинное слово. Число представляется последовательностью машинных слов, которые записываются в формате, естественном для данной архитектуры, но сами слова следуют в обратном порядке.&lt;br /&gt;
&lt;br /&gt;
Классический пример middle-endian — представление &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt;-байтных целых чисел на &amp;lt;tex&amp;gt;16&amp;lt;/tex&amp;gt;-битных процессорах семейства PDP-11 (известен как PDP-endian). Для представления двухбайтных значений (слов) использовался порядок little-endian, но &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt;-хбайтное двойное слово записывалось от старшего слова к младшему.&lt;br /&gt;
&lt;br /&gt;
В процессорах VAX и ARM используется смешанное представление для длинных вещественных чисел.&lt;br /&gt;
&lt;br /&gt;
=====Различия=====&lt;br /&gt;
[[Файл:endian.png|thumb|right| 300px]]&lt;br /&gt;
Существенным достоинством little-endian по сравнению с big-endian порядком записи считается возможность «неявной типизации» целых чисел при чтении меньшего объёма байт (при условии, что читаемое число помещается в диапазон). Так, если в ячейке памяти содержится число &amp;lt;tex&amp;gt;00000022_{16}&amp;lt;/tex&amp;gt;, то прочитав его как int16 (два байта) мы получим число &amp;lt;tex&amp;gt;0022_{16}&amp;lt;/tex&amp;gt;, прочитав один байт — число &amp;lt;tex&amp;gt;22_{16}&amp;lt;/tex&amp;gt;. Однако, это же может считаться и недостатком, потому что провоцирует ошибки потери данных.&lt;br /&gt;
&lt;br /&gt;
Обратно, считается что у little-endian, по сравнению с big-endian есть «неочевидность» значения байт памяти при отладке (последовательность байт (A1, B2, C3, D4) на самом деле значит &amp;lt;tex&amp;gt;D4C3B2A1_{16}&amp;lt;/tex&amp;gt;, для big-endian эта последовательность (A1, B2, C3, D4) читалась бы «естественным» для арабской записи чисел образом: &amp;lt;tex&amp;gt;A1B2C3D4_{16}&amp;lt;/tex&amp;gt;). Наименее удобным в работе считается middle-endian формат записи; он сохранился только на старых платформах.&lt;br /&gt;
&lt;br /&gt;
Для записи длинных чисел (чисел, длина которых существенно превышает разрядность машины) обычно предпочтительнее порядок слов в числе little-endian (поскольку арифметические операции над длинными числами производятся от младших разрядов к старшим). Порядок байт в слове — обычный для данной архитектуры.&lt;br /&gt;
&lt;br /&gt;
====Маркер последовательности байт====&lt;br /&gt;
Для определения формата представления Юникода в начало текстового файла записывается сигнатура — символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый маркером последовательности байт (англ. ''byte order mark (BOM)''). Это позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует.&lt;br /&gt;
[[Файл:Bom.png|thumb|right| 400px]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+'''Представление BOM в кодировках'''&lt;br /&gt;
|-&lt;br /&gt;
! Кодирование&lt;br /&gt;
! Представление (Шестнадцатеричное)&lt;br /&gt;
|-&lt;br /&gt;
| UTF-8&lt;br /&gt;
| &amp;lt;code&amp;gt;EF BB BF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UTF-16 (BE)&lt;br /&gt;
| &amp;lt;code&amp;gt;FE FF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UTF-16 (LE)&lt;br /&gt;
| &amp;lt;code&amp;gt;FF FE&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UTF-32 (BE)&lt;br /&gt;
| &amp;lt;code&amp;gt;00 00 FE FF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| UTF-32 (LE)&lt;br /&gt;
| &amp;lt;code&amp;gt;FF FE 00 00&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
В кодировке UTF-8, наличие BOM не является существенным, поскольку, нет альтернативной последовательности байт. Когда BOM используется на страницах или редакторах для контента закодированного в UTF-8, иногда он может представить пробелы или короткие последовательности символов, имеющие странный вид (такие как ï»¿). Именно поэтому, при наличии выбора, для совместимости, как правило, лучше упустить BOM в UTF-8 контенте.Однако BOM могут еще встречаться в тексте закодированном в UTF-8, как побочный продукт перекодирования или потому, что он был добавлен редактором. В этом случае BOM часто называют подписью UTF-8.&lt;br /&gt;
&lt;br /&gt;
Когда символ закодирован в UTF-16, его &amp;lt;tex&amp;gt;2&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;4&amp;lt;/tex&amp;gt; байта можно упорядочить двумя разными способами (little-endian или big-endian). Изображение справа показывает это. Byte order mark указывает, какой порядок используется, так что приложения могут немедленно расшифровать контент. UTF-16 контент должен всегда начинатся с BOM.&lt;br /&gt;
&lt;br /&gt;
BOM также используется для текста обозначенного как UTF-32. Аналогично UTF-16 существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE. К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом&lt;br /&gt;
&lt;br /&gt;
===Проблемы Юникода===&lt;br /&gt;
В Юникоде английское «a» и польское «a» {{---}} один и тот же символ. Точно так же одним символом (но отличающимся от «a» латинского) считаются русское «а» и сербское «а». Такой принцип кодирования не универсален; по-видимому, решения «на все случаи жизни» вообще не может существовать.&lt;br /&gt;
&lt;br /&gt;
==Примеры==&lt;br /&gt;
Если записать строку 'hello мир' в файл exampleBOM, а затем сделать его hex-дамп, то можно убедиться в том, что разные символы кодируются разным количеством байт. Например, английские буквы,пробел, знаки препинания и пр. кодируются одним байтом, а русские буквы - двумя&lt;br /&gt;
===Код на python===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
#coding:utf-8&lt;br /&gt;
import codecs&lt;br /&gt;
f = open('exampleBOM','w')&lt;br /&gt;
b = u'hello мир'&lt;br /&gt;
f.write(codecs.BOM_UTF8)&lt;br /&gt;
f.write(b.encode('utf-8'))&lt;br /&gt;
f.close()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===hex-дамп файла exampleBOM===&lt;br /&gt;
{|class = &amp;quot;wikitable&amp;quot; border = &amp;quot;1&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
 |Символ&lt;br /&gt;
 |colspan=&amp;quot;3&amp;quot; |BOM&lt;br /&gt;
 |h||e||l||l||o&lt;br /&gt;
 |Пробел&lt;br /&gt;
 |colspan=&amp;quot;2&amp;quot; |м&lt;br /&gt;
 |colspan=&amp;quot;2&amp;quot; |и&lt;br /&gt;
 |colspan=&amp;quot;2&amp;quot; |р&lt;br /&gt;
 |-&lt;br /&gt;
 |Код в UNICODE&lt;br /&gt;
 |EF&lt;br /&gt;
 |BB&lt;br /&gt;
 |BF&lt;br /&gt;
 |68||65||6C||6C||6F&lt;br /&gt;
 |20||D0||BC||D0||B8||D1||80&lt;br /&gt;
 |-&lt;br /&gt;
 |Код в UTF-8&lt;br /&gt;
 |11101111||10111011||10111111&lt;br /&gt;
 |01101000||01100101||01101100||01101100||01101111&lt;br /&gt;
 |00100000||11010000||10111100||11010000||10111000||11010001||10000000&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
==См. также==&lt;br /&gt;
* [[Представление целых чисел: прямой код, код со сдвигом, дополнительный код]]&lt;br /&gt;
* [[Представление вещественных чисел]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/ASCII Wikipedia {{---}} таблица ASCII]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 Wikipedia {{---}} стандарт UNICODE]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/Byte_order_mark Wikipedia {{---}} Byte order mark]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/Порядок_байтов Wikipedia {{---}} Порядок байтов]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 Wikipedia {{---}} Юникод] &lt;br /&gt;
* [http://ru.wikipedia.org/wiki/CP1251 Wikipedia {{---}} Windows-1251]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/UTF-8 Wikipedia {{---}} UTF-8]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/UTF-16 Wikipedia {{---}} UTF-16]&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/UTF-32 Wikipedia {{---}} UTF-32]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
[[Категория: Представление информации]]&lt;/div&gt;</summary>
		<author><name>83.220.238.50</name></author>	</entry>

	</feed>