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

Изтрито е съдържание Добавено е съдържание
Редакция без резюме
Редакция без резюме
Ред 106:
'''[[Уникод]]''' или ''Универсален набор от символи'' (на английски: ''Unicode'') и паралелния му стандарт [[:en:Universal_Coded_Character_Set|ISO/IEC 10646 Universal Character Set]], заедно представляват модерна единна система за символно кодиране. Вместо символите да се свързват директно в байтове, те поотделно определят какви символи са свободни, тяхното подреждане, как тези числа са кодирани като серия от „кодови единици”, и как накрая как  тези единици са кодирани като поток от байтове. Идеята за това разлагане е да се създаде универсален набор от символи, които могат да  бъдат кодирани по различен начин. За да се опише този модел правилно, трябва да се въведат по-точни методи от „набор от символи” и „символно  кодиране”. Методите, които се използват в съвременния модел са:
 
''Символното съдържание'' е пълният набор от абстрактни символи, които една система поддържа. Съдържанието може да бъде затворено, т.е. не са позволени допълнения без създаване на нови стандарти (както е направена [[:en:ASCII|ASCII]] таблицата), или да бъде отворено, позволявайки допълнения. Символите в дадено съдържание отразяват решенията как да се разделят системите за писане на основни информационни единици. Основните варианти на латински, гръцки и  кирилица могат да бъдат разделени на букви, цифри, пунктуационни знаци и няколко специфични символи като празно място, които  могат да бъдат подредени в прости линейни последователности, които се показват в реда, в който се четат. Дори с тези азбуки, диакритични знаци представляват усложнение: те могат да се разглеждат или като част от отделен символ, който съдържа буква и диакритичен символ, или като отделни символи. Основният позволява много по-проста текстова обработка, а последният позволява да бъде използвана буквена/ диакритична комбинация. Лигатурите създават същите проблеми. Други системи за писане като арабската азбука или иврит са представени като по сложни символни съдържания, поради необходимостта да се акомодират неща като двупосочен текст и знаци, които са свързани по между си по различни начини.
 
''Кодирания символен низ'' отговаря на това как е представено съдържанието на символите като цели числа, наречени кодови точки. Като например в дадено съдържание, символ представен с главна буква „А”, в латинската азбука е представен като числото 65.
 
''Кодираната символна форма- КСФ'' (''character encoding form-'' CEF) уточнява превръщането на целочислени кодове на кодиран набор от символи в серия от ограничени по размер целочислени кодови стойности, които улесняват съхранението в една система, представляваща числа в двоична бройна система, използвайки фиксиран брой битове. Например система, която съхранява информация в 16-битов блок, ще може да събере единствено цели числа от 0 до 65 535 във всяка единица. По-големите числа могат да бъдат представени, ако бъде използван повече от един 16-битов блок. Това е, което на КСФ побира: той определя начин на нанасяне единичен код на точка от редица например 0-1400000, до серия от един или повече кодови стойности от диапазона 0 до 65 535.
 
Най-простата КСФ система е просто да се изберат достатъчно големи единици, така че стойностите от кодирания набор от символи да могат да се кодират директно. Това работи добре за кодирани набори от символи, които се вписват в 8-бита и сравнително добре за кодирани набори от символи, които се побират в 16-бита. Въпреки това, тъй като размерът на кодиран набор от символи се увеличава, това става все по-малко ефективно и е трудно да се адаптират съществуващите системи, да се използват по-големи кодови стойности. Ето защо повечето система работещи с по-нови системи на Уникод използват или UTF-8 или UTF-16.
 
На следващо място е ''схемата за кодиране на символи''- СКМ (''character encoding scheme''- CES). Тя уточнява как целочислени кодови стойности да бъдат вмъкнати в базирана файлова система. С Уникод една проста схема за кодиране на символи се използва в повечето случаи, просто като се уточни  дали байта за всяко число трябва да бъде в по-голям къс или в по-малък.
 
И накрая, може да има по-висок по ниво протокол, който предоставя допълнителна информация, която може да се използва, за да  се избере конкретен вариант на Уникод символ.