Символно кодиране: Разлика между версии

Изтрито е съдържание Добавено е съдържание
Стандарт- формат. грешно в wiki ENG
Ralitsa88 (беседа | приноси)
Ред 20:
 
== Кодова единица ==
[[Файл:KB Dubeolsik for Old Hangul (Microsoft).svg|thumb|422x422px|[[Символен тип|Символ]] / знак]]
'''Терминология, свързана с кодовите единици:'''
* '''''Символът (знакът)''''' е минимална единица текст, който има семантична стойност.
* '''''Наборът от символи''''' представлява колекция от символи, които биха могли да бъдат използвани от различни езици.
Пример: ''Латинският набор от символи'' се използва от ''английския език'' и повечето ''европейски езици'', въпреки че ''гръцкият набор от символи'' се използва само от ''гръцкия език''.
* '''''Кодираният набор''''' '''''от символи''''' е набор от символи, където всеки символ получава уникален номер.
 
* '''''Кодовата точка''''' е стойност, която може да се използва в '''''кодиран набор от символи (знаци)'''''. '''''Кодовата точка''''' е 32-битов целочислен тип данни, където по-ниските 21 бита представляват валидна стойност на кодова точка и горните 11 бита са 0.
 
'''''Кодовата единица''''' е последователност от битове, използвана за кодиране на всяка отделна символна единица, която е част от репертоар в рамките на всеки вид кодиране.
Line 42 ⟶ 43:
* Кодова единица в [[UTF-32]] формата се състои от 32 бита.
 
'''''Пример за кодова единица:''''' Представете си един '''''[[Низ|String]]''' (бълг.: '''низ''' от символи)'', който съдържа "abc", последван от [http://www.charbase.com/10400-unicode-deseret-capital-letter-long-i Deseret LONG I], който е представен с две символни стойности. Този символен низ съдържа четири знака, четири кодови точки, но като цяло '''''пет кодови единици'''''.
 
За да изразите символ (знак) в Unicode, за шестнадесетичната стойност се добавя е началото представка на низа U +. Валидният обхват на кодовата точка за формата Unicode варира от U + 0000 до U + 10FFFF, включително.
 
Символи, които са в диапазона от U + 10 000 до U + 10FFFF се наричат ​​допълващи знаци (англ.: ''[http://www.i18nguy.com/surrogates.html supplementary characters]'')
Стойността на кодовата точка за латинския символ (знак) А е U ​​+ 0041.
 
Наборът от символи от U + 0000 до U + FFFF понякога се отнасят до Основната Многоезична равнина (англ.: ''[[:en:Plane_(Unicode)#Basic_Multilingual_Plane|Basic Multilingual Plane]]'' - BMP).
Стойността на кодовата точка за латинския sharp S символ (знак) е U + 00DF.
 
Таблицата по-долу демонстрира примери за стойности на кодови точки:
Line 79 ⟶ 80:
|-
|Han for East
|U+6771
|東
|-
|Ampersand
|U+0026
|&
|-
|Inverted exclamation mark
|U+00A1
|-
|Section sign
|U+00A7
|}
 
Символи, които са в диапазона от U + 10 000 до U + 10FFFF се наричат ​​допълващи знаци (англ.: ''[http://www.i18nguy.com/surrogates.html supplementary characters]'')
 
Наборът от символи от U + 0000 до U + FFFF понякога се отнасят до Основната Многоезична равнина (англ.: ''[[:en:Plane_(Unicode)#Basic_Multilingual_Plane|Basic Multilingual Plane]]'' - BMP).
 
'''Връзката между кодовите точки и кодовите единици:'''
Line 92 ⟶ 105:
 
Броят на кодови единици изисква да бъде картиран към кодова точка в зависимост от формата на кодиране:
* '''''UTF-8'''''
Множеството кодови единици на една кодoва точка са често срещани в UTF-8, поради по-малките размери на кодовите единици. Кодовите точки ще бъдат картирани с една, две, три, или четири кодови единици.
* '''''UTF-16'''''
UTF-16 кодовите единици са два пъти по-големи от 8-битовите кодови единици. Ето защо, всички кодови точки със скаларна стойност по-малка от 10 000 U + е кодирана с единична кодова единица.
 
За кодовите точки със скаларна стойност U + 10 000 или по-висока, са необходими две кодови единици за една кодова точка. За тези двойки кодови единици съществува уникален термин в UTF-16: [[:en:UTF-16#cite_note-Unicode7Ch3s8-5|"Unicode сурогатни двойки"]].
* '''''UTF-32'''''
32-битовата кодова единица, използвана в UTF-32 е достатъчно голяма, за да позволява на всяка кодова точка да се кодира като единична кодова единица.
* '''''GB18030'''''
Множество кодови единици на една кодова точка са често срещани в GB18030, поради по-малките кодови единици. Кодовите точки ще бъдат съпоставени с една, две или четири кодови единици.
<references group="http://docs.oracle.com/javase/tutorial/i18n/text/terminology.html" />
 
== Уникод кодиращ модел ==