Уникод
Логото на Уникодниот конзорциум | |
Именувања | Универзален збир на кодни знаци (UCS) |
---|---|
Јазик(ци) | Меѓународен |
Стандард | Уникоден стандард |
Кодирачки формати | UTF-8, UTF-16, GB18030 поретко во употреба: UTF-32, BOCU, SCSU |
Претходно | ISO 8859, и други |
Уникод е стандард во компјутерската индустрија за доследно кодирање, претставување и ракување со текстови, изразени во повеќето од светските системи за пишување. Најновата верзија содржи збирка од 136.755 знаци, кои опфаќаат 139 современи и историски скрипти, како и повеќе сетови од симболи. Стандардот Уникод се одржува во врска со ISO/IEC 10646, и обата се код-за-код идентични.
Уникод стандардот се состои од колекција на код графици за визуелна презентација, метод на кодирање и колекција на стандардни знаци за кодирање, колекција од референтни датотеки со податоци и голем број поврзани елементи, како што се својствата на знакот, правилата за нормализација, декомпозицијата, споредувањето, рендерирањето и двонасочниот ред на прикажување (за правилно прикажување на текст кој ги содржи и двата вида на системи за пишување, од десно кон лево системот за пишување, како што е арапското и хебрејското и од лево кон десно системот за пишување). Од јуни 2017 година, најновата верзија е Уникод 10.0. Стандардот го одржува Уникод конзорциумот.[1]
Успехот на Уникод во обединувањето на колекциите од знаци, довел до негова широка распространетост и примарна употреба во интернационализацијата и локализацијата на компјутерскиот софтвер. Стандардот бил имплементиран во многу нови технологии, вклучувајќи ги и модерните оперативни системи, XML, Јава (и други програмски јазици) како и .NET Framework.
Уникодот може да биде имплементиран со различни знаци за кодирање. Уникод стандардот ги дефинира UTF-8, UTF-16 и UTF-32, како и неколку други кодирања кои се во употреба. Најчесто користени кодирања се UTF-8, UTF-16 и UCS-2, претходникот на UTF-16.
UTF-8, доминантно користен од мрежните места (преку 90%),[2] користи еден бајт за првите 128 кодни точки, и најмногу до 4 бајти за другите знаци.[3] Првите 128 Уникод точки се ASCII знаци, што значи дека секој ASCII текст, е исто така и UTF-8 текст.
UCS-2 користи два бајта (16 бита) за секој знак, но може да ги кодира првите 65.536 кодни точки, т.н. Основно Повеќејазично Ниво (ОПН). Со 1.114.112 кодни точки на 17 нивоа што се можни, и со над 137.000 кодни точки дефинирани досега, многу Уникод знаци се надвор од дофатот на UCS-2. Затоа UCS-2 е застарен, иако сè уште се користи во софтверот. UTF-16 го проширува UCS-2, користејќи го истото 16-битно кодирање како и UCS-2 за Основното Повеќејазично Ниво и 4-бајтно кодирање за другите нивоа. Сè додека не содржи кодни точки во задржаниот опсег U+0D800-U+0DFFF, UCS-2 текстот е важечки UTF-16 текст.
UTF-32 (исто така се нарекува и UCS-4) користи четири бајти за секој знак. Како и UCS-2, бројот на бајти по знак е фиксен, олеснувајќи го индексирањето на знаците; но за разлика од UCS-2, UTF-32 може да ги кодира сите Уникод кодни точки. Меѓутоа, бидејќи секој знак користи четири бајти, UTF-32 зема значително повеќе простор во однос на другите кодирања, и не е широко користен.
Потекло и развој
[уреди | уреди извор]Уникод има експлицитна цел да ги надмине ограничувањата на традиционалните кодирања на знаци, како што се оние дефинирани со стандардот ISO 8859, кои нашле широка примена во разни држави во светот, но останале во голема мера некомпатибилни едни со други. Многу традиционални кодирања на знаците делат заеднички проблем, во тоа што овозможуваат двојазична сметачка обработка (обично се користат латинските знаци и месните знаци), но не и повеќејазична сметачка обработка (обработка на произволни пишувања помешани едни со други).
Уникод, тенеденциозно, ги кодира фундаменталните знаци - графемите и графемите како единици - наместо варијабилните хиероглифи (рендерирање) за такви знаци. Во случај на кинески знаци, ова понекогаш доведува до контроверзии околу разликувањето на основниот знак од неговите варијанти на хиероглифите (види унифицирање на Хан).
При обработка на текст, Уникод ја презема улогата да обезбеди единствена кодна точка- број, а не хиероглифа-за секој знак. Со други зборови, Уникод го претставува знакот на апстрактен начин и го остава визуелното рендерирање (големина, облик, фонт или стил) на друг софтвер, како што е пребарувачот или текстуалниот процесор. Сепак, оваа едноставна цел станува комплицирана, поради компромисите направени од дизајнерите на Уникод, со надеж дека ќе го поттикнат побрзото усвојување на Уникод.
Првите 256 кодни точки биле направени идентични со содржината на ISO-8859-1, со цел да се направи неважно претворањето на постоечкиот западен текст. Многу суштински идентични знаци биле кодирани многупати во различни кодни точки, за да се зачуваат разликите што се користат од наследените кодекси, па затоа овозможуваат претворање од тие кодирања во Уникод (и обратно), без губење на какви било информации. На пример, секцијата "неспоредливи форми" на кодните точки ја опфаќа целата латинска азбука, која е одделена од секцијата на главната латинска азбука, затоа што во кинеските, јапонските и корејските (КЈК) фонтови, овие латински знаци се рендерирани со иста широчина како КЈК идеографите, наместо на половина широчина. За други примери, видете во дупликат знаци во Уникод.
Историја
[уреди | уреди извор]Врз основ на искуствата со Ксерокс Знак Код Стандардот (XCCS) од 1980 година,[4] потеклото на Уникод датира од 1987 година, кога Џо Бејкер од Ксерокс, со Ли Колинс и Марк Дејвис од Епл, започнале да ја истражуваат практичноста за создавање на универзална колекција од знаци.[5] Со дополнителен придонес од страна на Питер Фенвик и Дејв Опстад,[4] Џо Бекер објавил нацрт-предлог за "меѓународен/повеќејазичен систем за кодирање на текстуалните знаци, во август 1988 година, условно наречен Уникод". Тој објаснил дека "името ’Уникод’ има за цел да укажува на уникатно, унифицирано, универзално кодирање".[4]
Во овој документ, наречен Уникод 88, Бекер го изложил 16-битниот модел за знаци:
Уникод има за цел да одговори на потребата од практично, сигурно кодирање на светски текст. Уникод грубо може да биде опишан како "широк ASCII", кој бил проширен на 16 бита, за да ги опфати знаците на сите светски живи јазици. Со соодветен инженерски дизајн, 16 бита по знак, е повеќе од доволен за оваа намена.
Неговиот оригинален 16-битен дизајн бил втемелен на претпоставката дека само овие пишувања и знаци во современа употреба би требало да бидат кодирани:[4]
Уникод дава повисок приоритет во обезбедувањето на корисност за иднината, отколку за зачувување на минатите антиквитети. Уникод е фокусиран, во прв ред, на знаците објавени во современиот текст (на пример, во сојузот на сите весници и списанија печатени во светот во 1988 година), чиј број е несомнено далеку под 214 = 16,384. Надвор од овие знаци за модерна употреба, сите други можат да бидат дефинирани како застарени или ретки; овие се подобри кандидати за регистрација за приватна употреба, отколку за загрозување на јавниот список на генерално корисни Уникодови.
Во почетокот на 1989 година, работната група на Уникод се проширила со вклучувањето на Кен Вистлер и Мајк Кернаген од Метафора, Карен Смит-Јошимура и Џоен Алипренд од РЛГ, како и Глен Врајт од Сан Микросистемс, а во 1990 година на групата се приклучиле Мишел Суигнерд и Асмус Фрајтаг од Мајкрософт како и Рик МекГовен од Некст. До крајот на 1990 година, најголем дел од работата за мапирање на постоечките стандарди за кодирање на знаците била завршена, а бил подготвен и конечниот преглед на нацртот на Уникод.
На 3 јануари 1991 година во Калифорнија бил инкорпориран Конзорциумот на Уникод,[6] а во октомври 1991 година бил издаден првиот том од стандардот Уникод. Вториот том, кој ги опфаќал идеограмите на Хан, бил објавен во јуни 1992 година.
Во 1996 година бил имплементиран заменски механизам за знаци во Уникод 2.0, така што Уникод повеќе не бил ограничен на 16 бита. Со тоа се зголемил просторот за кодови во Уникод, на повеќе од еден милион кодни точки, со што се овозможило кодирање на многу историски пишувања (на пример, египетските хиероглифи) и илјадници ретко користени или застарени знаци, кои не биле предвидени за кодирање. Помеѓу знаците кои првично не биле наменети за Уникод, се ретко користените Канџи или Кинеските знаци, многу од нив се дел од лични имиња и имиња на места, што ги прави ретко користени, но многу повеќе од круцијални, отколку што било предвидено во оригиналната архитектура на Уникод.[1]
Мајкрософт ТруТајп спецификацијата, верзија 1.0 од 1992, го користела името Епл Уникод наместо Уникод за Платформата ИД во табелата за именување.
Архитектура и терминологија
[уреди | уреди извор]Уникод дефинира простор за кодови од 1,114,112 кодни точки во опсегот 0hex до 10FFFFhex.[7] Нормално, Уникод кодната точка се наведува во системот за пишување "U+" проследена со нејзиниот хексадецимален број. За кодни точки во Основното Повеќејазично Ниво (ОПН), се користат четири цифри (на пример, U+0058 за знакот ЛАТИНИЧНА ГОЛЕМА БУКВА X); а за кодни точки надвор од ОПН, се користат пет или шест цифри, како што се бара (на пример, U+E0001 за знакот ЈАЗИЧЕТО ЈАЗИК и U+10FFFD за знакот ЗНАК ЗА ПРИВАТНа УПОТРЕБА -10FFFD).[6]
Нивоа на кодни точки и блокови
[уреди | уреди извор]Кодниот простор на Уникод е поделен на седумнаесет нивоа, нумерирани од 0 до 16:
До сите кодни точки во ОПН се пристапува со единечна кодна единица во UTF-16 кодирањето, а може да биде кодирана во еден, два или три бајти во UTF-8. До кодните точки во нивоата од 1 до 16 (дополнителни нивоа) се пристапува со заменски парови во UTF-16, а кодирани во четири бајта во UTF-8.
Во рамките на секое ниво, знаците се распределени во рамките на именуваните блокови со поврзани знаци. Иако блоковите се со произволна големина, тие секогаш се производ од 16 кодни точки, а често и производ од 128 кодни точки. Знаците потребни за дадените системи за пишување можат да се прошират преку неколку различни блокови.
Општи својства на категоријата
[уреди | уреди извор]Секоја кодна точка има единечно својство на Општата категорија. Главните категории се означени: Буква, Ознака, Број, Интерпункција, Симбол, Сепаратор и друго. Во рамките на овие категории, постојат и под-категории. Во повеќето случаи, мора да се користат други својства за доволно да се специфицираат знацистиките на кодната точка. Можните oпшти категории се:
Кодните точки во опсегот U+D800-U+ DBFF (1.024 кодни точки) се познати како високозаменски кодни точки, а кодните точки во опсегот U+DC00–U+DFFF (1.024 кодни точки) се познати како нискозаменски кодни точки. Високо заменските-кодни точки, по кои следат ниско заменски-кодни точки, во UTF-16 формираат заменски пар, за да ги претстават кодните точки поголеми од U+FFFF. Овие кодни точки поинаку не можат да бидат користени (ова правило е често игнорирано во праксата, особено кога не се користи UTF-16).
Мала колекција на кодни точки е загарантирана никогаш да не се користат за кодирање на знаци, иако апликациите можат да ги користат овие кодни точки интерно ако сакаат. Постојат шеесет и шест од овие не-знаци: U+FDD0-U+FDEF и било која кодна точка која завршува во вредноста FFFE или FFFF (т.е. U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, ... U+10FFFE , U+10FFFF). Колекцијата од не-знаци е постојана, а нови не-знаци нема да бидат некогаш дефинирани.[4] Правилото дека тие не можат да бидат користени, како заменски, често се игнорира, иако операцијата за означување на редоследот на бајти претпоставува дека U+FFFE никогаш нема да биде првата кодна точка во текстот.
Ако се исклучат заменските и не-знаците остануваат 1,111,998 кодни точки достапни за користење.
Кодните точки за приватна употреба се сметаат дека се доделени знаци, но тие немаат толкување специфицирано според Уникод стандардот,[8] па секоја размена на такви знаци бара договор помеѓу испраќачот и примачот за нивното толкување. Во кодниот простор на Уникод постојат три области за приватна употреба:
- Површина за приватна употреба: U+E000-U+F8FF (6.400 знаци)
- Дополнителна површина за приватна употреба-A: U+F0000-U+FFFFD (65.534 знаци)
- Дополнителна површина за приватна употреба -Б: U+100000–U+10FFFD (65.534 знаци).
Графички знаци се знаците дефинирани од страна на Уникод, за да имаат специфична семантика и да имаат или видлива форма на глиф или да претставуваат видлив простор. Од Уникод 10.0 има 136.537 графички знаци.
Знаците за формат се знаци кои немаат видлив изглед, но можат да влијаат врз изгледот или однесувањето на соседните знаци. На пример, U+200C знак за раздвојување со нулта ширина и U+200D знак за спојување со нулта широчина, можат да се користат за промена на стандардното однесување на соседните знаци (на пример, за да се инхибираат лигатурите или да побара формирање на лигатура). Во Уникод 10.0 постојат 153 знаци за формат.
Шеесет и пет кодни точки (U+0000–U+001F и U+007F–U+009F) се резервирани како контролни кодови и одговараат на кодовите за контрола C0 и C1, дефинирани во ISO/IEC 6429. U+0009 (Таб) , U+000A (Поместување за една линија напред) и U+000D (Поместување на курсорот на почетокот од линијата) се широко користени во Уникод-кодираните текстови. Во пракса, C1-кодните точки се често неправилно-преведени (Моџибејк –конфузен текст) наследени CP-1252 знаци, користени од некои англиски и западноевропски текстови со Виндоус технологии.
Графичките знаци, знаците за формат, знаците за контролен код, како и знаците за приватна употреба се групно познати како доделени знаци. Резервираните кодни точки се оние кодни точки кои се достапни за користење, но сè уште не се доделени. Од Уникод 10.0 има 873.775 резервирани кодни точки.
Апстрактни знаци
[уреди | уреди извор]Колекцијата од графички знаци и знаци за формат, дефинирани од страна на Уникод, не одговара директно со колекцијата на апстрактни знаци, што е претставена од Уникод. Уникод ги кодира знаците со поврзување со апстрактен знак со одредена кодна точка.[4] Сепак, не сите апстрактни знаци се кодирани како единечен Уникод знак, па некои апстрактни знаци во Уникод можат да бидат претставени со низа од два или повеќе знака. На пример, малата латинична буква "и" со знак над буквата, точка над и акутен акцент, што е потребно на литвански јазик, е претставена со секвенца од знаци U+012F, U+0307, U+0301. Уникод чува список на уникатно именувани секвенци на знаци за апстрактните знакти, кои не се директно кодирани во Уникод.[9]
Сите графички, за формати и знаци за лична употреба имаат уникатно и непроменливо име, според кое можат да бидат идентификувани. Оваа непроменливост е загарантирана од Уникод верзијата 2.0, со политиката за Стабилност на Името. Во случаите каде што името е навистина неисправно и погрешно, или има вистинска типографска грешка, може да се дефинира формален псевдоним, а апликациите се стимулираат да го користат формалниот псевдоним на местото на официјалното име на знакот. На пример, U+A015 ꀕYI SYLLABLE WU има официјален псевдоним yi слог итерациски знак, и U+FE18 ︘ ПРЕЗЕНТАЦИСКА ФОРМА ЗА ВЕРТИКАЛНА ПРАВА БЕЛА леќеста ЗАГРАДА (sic) има формален псевдоним за презентациска форма на вертикална десна бела леќеста заграда.[10]
Уникод Конзорциум
[уреди | уреди извор]Уникод Конзорциумот е непрофитна организација, која го координира развојот на Уникод. Како полноправни членови се вклучени поголемиот дел од главните компјутерски софтверски и хардверски компании, со некаков интерес во стандардите за обработката на текстови, вклучувајќи ги Адоб Системс, Епл, Гугл, ИБМ, Мајкрософт, Оракл Корпорејшн и Јаху!.[11]
Конзорциумот има амбициозна цел, постоечките шеми за кодирање на знаци на крајот да ги замени со Уникод и неговите стандардни шеми Уникод Формат за Трансформации (УФТ), бидејќи многу од постоечките шеми се ограничени по големина и опсег и не се компатибилни со повеќејазични околини.
Верзии
[уреди | уреди извор]Уникод е развиен во соработка со Меѓународната Организација за Стандардизација и ја споделува колекцијата од знаци со ISO/IEC 10646: Универзалната Колекција од Знаци. Уникод и ISO/IEC 10646 функционираат подеднакво при кодирање на знаци, но Уникод стандардот содржи многу повеќе информации за тие што го имплементираат, покривајќи ги темелно темите како што се кодирање на бинарни податоци во секвенци од знаци кои можат да се печатат, споредување и рендерирање. Стандардот Уникод набројува различни знакни својства, вклучувајќи ги и оние потребни за поддршка на двонасочен текст. Двата стандарда користат малку поинаква терминологија.
Конзорциумот првпат го објави Стандардот Уникод (ISBN 0-321-18578-1) во 1991 година и продолжил да развива стандарди, врз основ на таа оригинална творба. Последната верзија на стандардот, Уникод 10.0, била објавена во јуни 2017 година и е достапна на мрежната страница на конзорциумот. Последната од главните верзии (верзиите x.0) што требала да се објави како книга била Уникод 5.0 (ISBN 0-321-48091-0), но од Уникод 6.0 целиот текст на стандардот повеќе не е објавен во форма на книга. Сепак, во 2012 година, било објавено дека само фундаменталната спецификација за Уникод верзија 6.1 ќе биде достапна како врзана книга од 692 страници, спремна за печатење на барање.[6] За разлика од претходната отпечатена главна верзија на Стандардот, фундаменталната спецификација спремна за печатење на барање, не вклучува никакви графички кодови или стандардни анекси, но целиот стандард, вклучувајќи ја и фундаменталната спецификација, сепак ќе остане слободно достапна на мрежното место на Уникод во ПДФ верзија.
Досега биле објавени следниве главни и споредни верзии на стандардот Уникод. Обновените верзии, кои не вклучуваат никакви промени во колекцијата на знаци, се означени со третиот број (на пример, "верзија 4.0.1") и се исклучени во табелата подолу.
Верзија | Дата | Одговарачка ИСО/ИЕЦ 10646 верзија | Скрипти | Знаци | |
---|---|---|---|---|---|
Вкупно | Значајни дополнувања | ||||
1.0.0 | October 1991 | 24 | 7,161 | Initial repertoire covers these scripts: Arabic, Armenian, Bengali, Bopomofo, Cyrillic, Devanagari, Georgian, Greek and Coptic, Gujarati, Gurmukhi, Hangul, Hebrew, Hiragana, Kannada, Katakana, Lao, Latin, Malayalam, Oriya, Tamil, Telugu, Thai, and Tibetan.[12] | |
1.0.1 | June 1992 | 25 | 28,359 | The initial set of 20,902 CJK Unified Ideographs is defined.[12] | |
1.1 | June 1993 | ISO/IEC 10646-1:1993 | 24 | 34,233 | 4,306 more Hangul syllables added to original set of 2,350 characters. Tibetan removed.[12] |
2.0 | July 1996 | ISO/IEC 10646-1:1993 plus Amendments 5, 6 and 7 | 25 | 38,950 | Original set of Hangul syllables removed, and a new set of 11,172 Hangul syllables added at a new location. Tibetan added back in a new location and with a different character repertoire. Surrogate character mechanism defined, and Plane 15 and Plane 16 Private Use Areas allocated.[12] |
2.1 | May 1998 | ISO/IEC 10646-1:1993 plus Amendments 5, 6 and 7, as well as two characters from Amendment 18 | 25 | 38,952 | Euro sign and Object Replacement Character added.[12] |
3.0 | September 1999 | ISO/IEC 10646-1:2000 | 38 | 49,259 | Cherokee, Ethiopic, Khmer, Mongolian, Burmese, Ogham, Runic, Sinhala, Syriac, Thaana, Unified Canadian Aboriginal Syllabics, and Yi Syllables added, as well as a set of Braille patterns.[12] |
3.1 | March 2001 | ISO/IEC 10646-1:2000
ISO/IEC 10646-2:2001 |
41 | 94,205 | Deseret, Gothic and Old Italic added, as well as sets of symbols for Western music and Byzantine music, and 42,711 additional CJK Unified Ideographs.[12] |
3.2 | March 2002 | ISO/IEC 10646-1:2000 plus Amendment 1
ISO/IEC 10646-2:2001 |
45 | 95,221 | Philippine scripts Buhid, Hanunó'o, Tagalog, and Tagbanwa added.[12] |
4.0 | April 2003 | ISO/IEC 10646:2003 | 52 | 96,447 | Cypriot syllabary, Limbu, Linear B, Osmanya, Shavian, Tai Le, and Ugaritic added, as well as Hexagram symbols.[12] |
4.1 | March 2005 | ISO/IEC 10646:2003 plus Amendment 1 | 59 | 97,720 | Buginese, Glagolitic, Kharoshthi, New Tai Lue, Old Persian, Syloti Nagri, and Tifinagh added, and Coptic was disunified from Greek. Ancient Greek numbers and musical symbols were also added.[12] |
5.0 | July 2006 | ISO/IEC 10646:2003 plus Amendments 1 and 2, as well as four characters from Amendment 3 | 64 | 99,089 | Balinese, Cuneiform, N'Ko, Phags-pa, and Phoenician added.[12] |
5.1 | April 2008 | ISO/IEC 10646:2003 plus Amendments 1, 2, 3 and 4 | 75 | 100,713 | Carian, Cham, Kayah Li, Lepcha, Lycian, Lydian, Ol Chiki, Rejang, Saurashtra, Sundanese, and Vai added, as well as sets of symbols for the Phaistos Disc, Mahjong tiles, and Domino tiles. There were also important additions for Burmese, additions of letters and Scribal abbreviations used in medieval manuscripts, and the addition of Capital ẞ.[12] |
5.2 | October 2009 | ISO/IEC 10646:2003 plus Amendments 1, 2, 3, 4, 5 and 6 | 90 | 107,361 | Avestan, Bamum, Egyptian hieroglyphs (the Gardiner Set, comprising 1,071 characters), Imperial Aramaic, Inscriptional Pahlavi, Inscriptional Parthian, Javanese, Kaithi, Lisu, Meetei Mayek, Old South Arabian, Old Turkic, Samaritan, Tai Tham and Tai Viet added. 4,149 additional CJK Unified Ideographs (CJK-C), as well as extended Jamo for Old Hangul, and characters for Vedic Sanskrit.[12] |
6.0 | October 2010 | ISO/IEC 10646:2010 plus the Indian rupee sign | 93 | 109,449 | Batak, Brahmi, Mandaic, playing card symbols, transport and map symbols, alchemical symbols, emoticons and emoji. 222 additional CJK Unified Ideographs (CJK-D) added.[12] |
6.1 | January 2012 | ISO/IEC 10646:2012 | 100 | 110,181 | Chakma, Meroitic cursive, Meroitic hieroglyphs, Miao, Sharada, Sora Sompeng, and Takri.[12] |
6.2 | September 2012 | ISO/IEC 10646:2012 plus the Turkish lira sign | 100 | 110,182 | Turkish lira sign.[12] |
6.3 | September 2013 | ISO/IEC 10646:2012 plus six characters | 100 | 110,187 | 5 bidirectional formatting characters.[1] |
7.0 | June 2014 | ISO/IEC 10646:2012 plus Amendments 1 and 2, as well as the Ruble sign | 123 | 113,021 | Bassa Vah, Caucasian Albanian, Duployan, Elbasan, Grantha, Khojki, Khudawadi, Linear A, Mahajani, Manichaean, Mende Kikakui, Modi, Mro, Nabataean, Old North Arabian, Old Permic, Pahawh Hmong, Palmyrene, Pau Cin Hau, Psalter Pahlavi, Siddham, Tirhuta, Warang Citi, and Dingbats.[12] |
8.0 | June 2015 | ISO/IEC 10646:2014 plus Amendment 1, as well as the Lari sign, nine CJK unified ideographs, and 41 emoji characters[6] | 129 | 120,737 | Ahom, Anatolian hieroglyphs, Hatran, Multani, Old Hungarian, SignWriting, 5,771 CJK unified ideographs, a set of lowercase letters for Cherokee, and five emoji skin tone modifiers[12] |
9.0 | June 2016 | ISO/IEC 10646:2014 plus Amendments 1 and 2, as well as Adlam, Newa, Japanese TV symbols, and 74 emoji and symbols[6] | 135 | 128,237 | Adlam, Bhaiksuki, Marchen, Newa, Osage, Tangut, and 72 emoji[12][13] |
10.0 | June 2017 | ISO/IEC 10646:2017 plus 56 emoji characters, 285 hentaigana characters, and 3 Zanabazar Square characters[6] | 139 | 136,755 | Zanabazar Square, Soyombo, Masaram Gondi, Nüshu, hentaigana (non-standard hiragana), 7,494 CJK unified ideographs, and 56 emoji |
Покриени пишувања
[уреди | уреди извор]Уникод ги покрива речиси сите пишувања (системи за пишување) во моментална употреба денес.[14] Вкупно 139 системи за пишување се вклучени во последната верзија на Уникод (што ги опфаќа азбуките, абугидите и слоговните писма), иако сè уште има пишувања кои сè уште не се кодирани, особено оние кои главно се користат во историските, литургиските и академските контексти. Исто така, се случуваат и понатамошни додавања на знаци на веќе кодираните системи за пишување, како и симболи, особено во математиката и музиката (во форма на белешки и ритмички симболи).
Комитетот за графички шеми на Уникод (Мајкл Иверсон, Рик МекГовен и Кен Уистлер[11]) ја одржува списокот на системи за пишување, кои се кандидати или потенцијални кандидати за кодирање, и нивните пробни лексички структури на изворниот код на страницата на Уникод графички шеми на мрежната страница на Конзорциумот на Уникод. За некои системи за пишување во графичката шема, како што се малите системи за пишување Јурхен и Кхитан, биле поднесени предлози за кодирање и тие работат на тоа, преку процесот на одобрување. За други системи за пишување, како што се Мајан и Ронгоронго, сè уште не бил поднесен никаков предлог, и тие чекаат консензус од заедниците инволвирани во процесот, во врска со колекцијата на знаци и другите детали.
Некои современи измислени системи за пишување, кои сè уште не се вклучени во Уникод (на пример, Тенгвор), или кои не се квалификувале за вклучување во Уникод поради мала употреба во реалниот свет (на пример, Клингон) се наведени во Уникод Регистерот КонСкрипт, заедно со неофицијалните, но широко користените доделени кодови за приватна употреба.
Исто така постои и иницијатива за Средновековен Уникод Фонт, која е фокусирана на специјалните Латински средновековни знаци. Дел од овие предлози се веќе вклучени во Уникод.
Иницијативата за кодирање на системите за пишување, проект што го води Дебора Андерсон од Универзитетот во Калифорнија, Беркли, била основана во 2002 година, со цел да се финансираат предлозите за системи на пишување кои сè уште не се кодирани во стандардот. Проектот станал главен извор на предложени дополнувања на стандардот во последниве години.[15]
Мапирање и кодирање
[уреди | уреди извор]За имплементација на Уникод се специфицирани неколку механизми. Изборот зависи од расположливиот простор за меморирање, компатибилноста со изворниот код и интероперабилноста со другите системи.
Уникод Трансформациски Формат и Универзална колекција на кодирани знаци
[уреди | уреди извор]Уникод дефинира два метода на мапирање: Уникод Трансформациски Формат на кодирање (UTF) и кодирање Универзална колекција на кодирани знаци (UCS). Кодирањето го мапира (евентуално подколекцијата од) опсегот од Уникод кодни точки во секвенци на вредности во одреден опсег со фиксна големина, наречени вредности на кодот. Сите UTF кодирања ги мапираат сите кодот точки (со исклучок на заменските) во уникатна низа од бајти.[16] Броевите во имињата на кодирањата го означуваат бројот на битови по вредност на кодот (за UTF-енкодирања), или бројот на бајти по вредност на кодот (за кодирање UCS). UTF-8 и UTF-16 се најверојатно најчесто користени кодирања. UCS-2 е застарена подколекција на UTF-16; а UCS-4 и UTF-32 се функционално идентични.
UTF кодирањата ги вклучуваат:
- UTF-1, поранешен претходник на UTF-8, ја максимизира компатибилноста со ISO 2022, веќе не дел од стандардот Уникод;
- UTF-7, 7-битно кодирање понекогаш користено во е-пошта, често се смета како застарено (не е дел од стандардот Уникод, туку е документиран само како информативен
RFC, т.е. не е на интернет стандардите за следење);
- UTF-8, 8-битно кодирање со променлива широчина, која ја максимизира компатибилноста со ASCII;
- UTF-EBCDIC, 8-битно кодирање со променлива широчина слична на UTF-8, но дизајнирано да биде компатибилно со EBCDIC (не е дел од стандардот Уникод);
- UTF-16, 16-битно кодирање со променлива широчина;
- UTF-32, 32-битно кодирање со фиксна широчина.
UTF-8 користи еден до четири бајти по кодна точка, компактен е за Латински системи на пишување и е ASCII-компатибилен, претставува де факто стандардно кодирање за размена на Уникод текст. Се користи од FreeBSD и најновите изданија на Линукс како директна замена за наследените кодирања во општата обработка на текстови.
Кодирањата UCS-2 и UTF-16 го опишуваат Уникодовиот знак, кој се појавува како магичен број на почетокот од текстот (BOM), кој се користи на почетокот на текстуалните податотеки, кои можат да се користат за складирање на два бајта во меморијата (за детекција на секвенцијалниот редослед во кој се поставени бајтите во поголемите бројчени вредности). Кодната точка U+FEFF од BOM го има значајното својство на недвосмисленост во редоследот на бајтите, без оглед на кодирањето кое го користи Уникод; U+FFFE (резултат на замената на бајти U+FEFF) не се идентификува со законскиот знак, а U+FEFF на други места, освен на почетокот на текстот, го пренесува знакот за простор со нулта широчина (знак без изглед и без друг ефект, освен да го спречи формирање на лигатури).
Истиот знак, претворен во UTF-8, станува бајт секвенца EF BB BF. Стандардот Уникод дозволува да "BOM служи како потпис за кодиран UTF-8 текст, каде што колекцијата од знаци е необележана".[17] Некои развивачи на софтвер него го прилагодиле за други кодирања, вклучувајќи го UTF-8, во обид да се разликува UTF-8 од локалните 8-битни кодни страници. Сепак, RFC 3629, UTF-8 стандардот, препорачува да маркирањето на редоследот на бајти се забрани во протоколите со користење на UTF-8, но дискутира за случаите каде што тоа нема да биде можно. Покрај тоа, големото ограничување на можните обрасци во UTF-8 (на пример, не може да има ниту еден осамен бајт со хај бит сетирање) значи дека треба да биде можно да се прави разлика помеѓу UTF-8, во однос на другите кодирања на знаци, без да се потпира на BOM.
Во UTF-32 и UCS-4, една 32-битна кодна вредност служи за разумно директно претставување на кодната точка на било кој знак (иако секвенцијалниот ред во кој се распоредени бајтите во поголемите бројчени вредности, кој варира во различни платформи, влијае на тоа како вредноста на кодот се прикажува како октетска секвенца). Кај другите кодирања, секоја кодна точка може да биде претставена со променлив број на вредности на кодот. UTF-32 е широко користен за внатрешно претставување на текстот во програмите (во спротивност од зачуваниот или пренесениот текст), бидејќи секој оперативен систем на Јуникс, кој ги користи гцц компајлерите за генерирање на софтвер, го користи за стандардно кодирање на "широкиот знак". Некои програмски јазици, како што се Seed7, го користат UTF-32 за внатрешно претставување на низите и знаците. Последните верзии на програмскиот јазик Пајтон (почнувајќи од 2.2), исто така, можат да бидат конфигурирани да го користат UTF-32 за претставување за Уникод низите, ефикасно ширејќи го таквото кодирање во софтвер кодиран на високо ниво.
Паникод, друга форма на кодирање, овозможува кодирање на Уникод низите внатре во ограничената колекција на знаци, поддржано од ASCII-заснованиот доменски систем на имиња (DNS). Кодирањето се користи како дел од IDNA, што е систем кој овозможува употреба на Интернационализирани имиња на домејни во сите системи на пишување, кои се поддржани од Уникод. Претходно и сега историските предлози ги вклучуваат UTF-5 и UTF-6.
GB18030 е друга форма на кодирање за Уникод, од Администрацијата за Стандардизација на Кина. Тоа е официјална колекција од знаци на Народна Република Кина (НРК). BOCU-1 и SCSU се Уникод шемите за компресија. На денот на шегата во април, RFC од 2005 година навел две пародии на UTF кодирањата, UTF-9 и UTF-18.
Готови наспроти сложени знаци
[уреди | уреди извор]Уникод вклучува механизам за модифицирање на обликот на знакот, кој во голема мера ја проширува поддржаната колекција на хиероглифи. Тоа ја опфаќа употребата на комбинирани дијакритични ознаки. Тие се вметнати по главниот знак. Бројни комбинации на дијакритици можат да бидат собрани над истиот знак. Уникод, исто така, содржи претходно составени верзии на бројни буквени/дијакритични комбинации за нормална употреба. Тие прават претворање кон и од поедноставните кодирања, и дозволуваат да апликациите го користат Уникодот како внатрешен формат на текст, без да мораат да ги имплементираат комбинираните знаци. На пример, букавата é во Уникод може да биде претставена како U+0065 (ЛАТИНИЧНА МАЛА БУКВА е) по која следи U+0301 (КОМБИНИРАЊЕ НА АКУТ АКЦЕНТ), но исто така може да биде претставена и како претходно составен знак U+00E9 (ЛАТИНИЧНА МАЛА БУКВА е СО АКУТ ). Според тоа, во многу случаи, корисниците имаат бројни начини на кодирање на истиот знак. За да се справи со ова, Уникод го создал механизмот за канонска еквивалентност.
Пример за ова произлегува од Хангул, корејската азбука. Уникод нуди механизам за создавање на Хангул слогови со нивните поединечни подкомпоненти, познат како Хангул Јамо. Меѓутоа, тој исто така, нуди 11.172 комбинации на претходно создадени слогови направени од најчестите јамо.
Идеограмите на ЦЈК (CJK) моментално имаат шифри само за нивните претходно собрани форми. Сепак, повеќето од тие идеограми содржат поедноставни елементи (честопати наречени радикали на англиски), па во принцип, Уникод можел да ги разложи, како што тоа го направил со Хангул. Ова во голема мера ќе го намали бројот на потребните кодни точки, истовремено овозможувајќи да се прикаже буквално секој можен идеограм (кој би можел да отстрани некој од проблемите предизвикани со унифицирањето на Хан). Слична идеја е користена и кај некои влезни методи, како што се Кангџие и Вуби. Сепак, обидите да се направи ова за кодирање на знаците заглавиле, поради фактот што идеограмите не се разложуваат толку едноставно или толку често како што тоа го прави Хангул.
Во Уникод 3.0 била обезбедени колекција од радикали (радикали на CJK помеѓу U+2E80 и U+2EFF, KangXi радикали од U+2F00 до U+2FDF и знаци за идеограмски опис од U+2FF0 до U+2FFB), но Уникод стандардот (чл декември 2 од Уникод 5.2) предупредува да не се користат секвенци од идеограмски описи како алтернативно претставување на претходно кодираните знаци:
Овој процес е различен од конвенционалното кодирање на идеограм. Нема канонски опис на некодираните идеограми; нема назначено семантика за опишување на идеограмите; нема еквивалентност дефинирана за опишаните идеограми. Концептуално, идеографските описи се послични на англиската фраза " буквата ‘е‘ со акут акцент на неа" отколку на секвенцата од знаци <U+0065, U+0301>.
Лигатури
[уреди | уреди извор]Многу системи на пишување, вклучувајќи ги Арапскиот и Деванагари, имаат посебни правописни правила, кои бараат одредени комбинации на форми на букви да бидат комбинирани во специјални лигатурни форми. Правилата за формирање на лигатура можат да бидат доста сложени, за кои се потребни посебни технологии за оформување на системите за пишување, како што се ACE (Arabic Calligraphic Engine од ДекоТајп во 1980-тите и се користат за генерирање на сите Арапски примери во печатените изданија на Уникод стандардот), што станало доказ на концептот за OpenType (Адоб и Мајкрософт), Graphite (од СИЛ Интернешнл), или AAT (од Епл).
Инструкциите, се исто така, вградени во фонтовите, за да му кажат на оперативниот систем како правилно да ги прикаже различни знакни секвенци. Едноставно решение за поставување на комбинирачки ознаки или дијакритика е доделувањето на ознаки со нулта широчина и поставување на самиот хиероглиф во лево или во десно од левата страна (во зависност од насоката на системот на пишување за кој се наменети да се користат). Ознаката со која се ракува на овој начин ќе се појави над било кој знак кој му претходи на истиот, но нема да ја прилагоди својата позиција релативно во однос на широчината или висината на основниот хиероглиф; визуелно тоа може да биде непријатно и може да се преклопува со некои хиероглифи. Реално редење е невозможно, но може да биде апроксимирано во ограничени случаи (на пример, Тајландско комбинирање-на врвот на самогласките и тонските ознаки може да биде со различна височина за да започне со тоа). Општо земено, овој пристап е делотворен само кај фонтовите со фиксна широчина или чекор, но може да се користи и како алтернативен метод за рендерирање , кога многу посложените методи нема да ја постигнат целта.
Стнадардизирани подколекции
[уреди | уреди извор]Стандардизирани се неколку подколекции на Уникод: Мајкрософт Виндоус од Виндоус НТ 4.0 поддржува WGL-4 со 656 знаци, за кој се смета дека ги поддржува сите современи европски јазици, со користење на латинични, грчки или кирилични системи на пишувања. Други стандардизирани Уникод подколекции ги вклучуваат повеќејазичните Европски подколекции:[18]
MES-1 (само латински систем на пишување, 335 знаци), MES-2 (латински, грчки и кирилични 1062 знаци)[19] и MES-3A и MES-3B (две поголеми подколекции, не се прикажани овде). Земете предвид дека MES-2 го вклучува секој знак во MES-1 и WGL-4.
Ред | Ќелии | Опсег |
---|---|---|
00 | 20–7E | Basic Latin (00–7F) |
A0–FF | Latin-1 Supplement (80–FF) | |
01 | 00–13, 14–15, 16–2B, 2C–2D, 2E–4D, 4E–4F, 50–7E, 7F | Latin Extended-A (00–7F) |
8F, 92, B7, DE-EF, FA–FF | Latin Extended-B (80–FF ...) | |
02 | 18–1B, 1E–1F | Latin Extended-B (... 00–4F) |
59, 7C, 92 | IPA Extensions (50–AF) | |
BB–BD, C6, C7, C9, D6, D8–DB, DC, DD, DF, EE | Spacing Modifier Letters (B0–FF) | |
03 | 74–75, 7A, 7E, 84–8A, 8C, 8E–A1, A3–CE, D7, DA–E1 | Greek (70–FF) |
04 | 00–5F, 90–91, 92–C4, C7–C8, CB–CC, D0–EB, EE–F5, F8–F9 | Cyrillic (00–FF) |
1E | 02–03, 0A–0B, 1E–1F, 40–41, 56–57, 60–61, 6A–6B, 80–85, 9B, F2–F3 | Latin Extended Additional (00–FF) |
1F | 00–15, 18–1D, 20–45, 48–4D, 50–57, 59, 5B, 5D, 5F–7D, 80–B4, B6–C4, C6–D3, D6–DB, DD–EF, F2–F4, F6–FE | Greek Extended (00–FF) |
20 | 13–14, 15, 17, 18–19, 1A–1B, 1C–1D, 1E, 20–22, 26, 30, 32–33, 39–3A, 3C, 3E, 44, 4A | General Punctuation (00–6F) |
7F, 82 | Superscripts and Subscripts (70–9F) | |
A3–A4, A7, AC, AF | Currency Symbols (A0–CF) | |
21 | 05, 13, 16, 22, 26, 2E | Letterlike Symbols (00–4F) |
5B–5E | Number Forms (50–8F) | |
90–93, 94–95, A8 | Arrows (90–FF) | |
22 | 00, 02, 03, 06, 08–09, 0F, 11–12, 15, 19–1A, 1E–1F, 27–28, 29, 2A, 2B, 48, 59, 60–61, 64–65, 82–83, 95, 97 | Mathematical Operators (00–FF) |
23 | 02, 0A, 20–21, 29–2A | Miscellaneous Technical (00–FF) |
25 | 00, 02, 0C, 10, 14, 18, 1C, 24, 2C, 34, 3C, 50–6C | Box Drawing (00–7F) |
80, 84, 88, 8C, 90–93 | Block Elements (80–9F) | |
A0–A1, AA–AC, B2, BA, BC, C4, CA–CB, CF, D8–D9, E6 | Geometric Shapes (A0–FF) | |
26 | 3A–3C, 40, 42, 60, 63, 65–66, 6A, 6B | Miscellaneous Symbols (00–FF) |
F0 | (01–02) | Private Use Area (00–FF ...) |
FB | 01–02 | Alphabetic Presentation Forms (00–4F) |
FF | FD | Specials |
Софтверот за рендерирање, кој не може да обработи Уникод знак, истиот соодветно често го прикажува како отворен правоаголник или како Уникод "заменски знак" (U+FFFD,), за да ја означи позицијата на непрепознатливиот знак. Некои системи се обиделе да обезбедат повеќе информации во врска со таквите знаци. Фонтот на Епл Last Resort ќе прикаже заменска хиероглифа, покажувајќи го опсегот на Уникод знакот, а фонтот на СИЛ Интернешнл Unicode Fallback ќе прикаже кутија, во која ќе се прикаже хексадецималната скаларна вредност на знакот.
Пребарување на кодна точка
[уреди | уреди извор]Онлајн алатките за пронаоѓање на кодната точка за познат знак ги вклучуваат Уникод Пребарувањето (Unicode Lookup)[20] од Џонатан Хедли и Шејпкечер (Shapecatcher)[21] од Бенџамин Мајлд. Во Unicode Lookup, со притискање на еден се отвора копче за пребарување (на пр. "дропки"), и се прикажува листа од соодветни знаци со нивните кодни точки. Во Shapecatcher, кој се темели на контекстот Форма, со притискање на еден се исцртува знак во кутија и се прикажува листа од знаци кои го апроксимираат цртежот, со нивните кодни точки.
Усвојување
[уреди | уреди извор]Оперативни системи
[уреди | уреди извор]Уникод станал доминантен програм за внатрешна обработка и складирање на текст. Иако голем дел од текстот е сè уште зачуван во наследените кодирања, Уникод е користен речиси исклучително за создавање на нови системи за обработка на информации. Раните адаптери имале тенденција да го користат UCS-2 (два-бајта со фиксна-широчина, претходник на UTF-16), а подоцна се префрлиле на UTF-16 (моменталниот стандард со променлива широчина), бидејќи тоа бил најмалку нарушувачки начин за да се додаде поддршка за не-BMP знаци. Најпознат таков систем е Виндоус НТ (и неговите наследници, Виндоус 2000, Виндоус ИксПе, Виндоус Виста, Виндоус 7, Виндоус 8 и Виндоус 10), кои користат UTF-16 како единствено внатрешно кодирање на знаците. Јава и .НЕТ средините за кодирање на бајтови, macOS и KDE исто така го користат за внатрешно претставување. Уникод е достапен во Виндоус 95 преку Мајкрософт Лејер за Уникод, како и во неговите наследници, Виндоус 98 и Виндоус МЕ.
UTF-8 (првично развиен за Plan 9)[22] станал главно кодирање за меморирање, во повеќето оперативни системи слични на Јуникс (иако други системи се исто така користени од некои библиотеки), бидејќи тој е релативно лесна замена за традиционалните проширени ASCII знакни колекции. UTF-8 е исто така најчесто Уникод кодирање, кое се користи во HTML-документите на World Wide Web.
Повеќејазични машини за рендерирање на текст кои користат Уникод, ги вклучуваат Uniscribe и DirectWrite за Мајкрософт Виндоус, ATSUI и Core Text за macOS, и Pango за GTK+ и работната околина GNOME.
Влезни методи
[уреди | уреди извор]Бидејќи распоредот на тастатурата не може да има едноставни комбинации на копчиња за сите знаци, неколку оперативни системи нудат алтернативни методи за внесување, кои овозможуваат пристап до целата колекција.
ISO/IEC 14755,[23] кој ги стандардизира методите за внесување на Уникод знаците од нивните кодни точки, дефинира неколку методи. Постои Основен метод, каде што почетната секвенца е проследена со хексадецимално претставување на кодната точка и завршната секвенца. Исто така, постои и дефиниран метод за внесување со избор од екран, каде што знаците се наведени во табела на екранот, како што случајот со Знак Мап програмот.
Е-пошта
[уреди | уреди извор]MIME дефинира два различни механизма за кодирање на не-ASCII знаци во е-пошта, во зависност од тоа дали знаците се наоѓаат во насловот на е-пошта (како што е "Предмет:") или во текстот на пораката; и во двата случаи, оригиналната колекција од знаци е детерминирана, исто како и трансфер кодирањето. За е-мејл пренос на Уникод, се препорачуваат UTF-8 колекцијата од знаци и кодирањето за пренос Бејс64 или кодирање со користење на ASCII знаци кои можат да се печатат, во зависност од тоа дали поголемиот дел од пораката се состои од ASCII знаци. Деталите за двата различни механизма се наведени во MIME стандардите и обично се скриени од корисниците на е-мејл софтверот.
Усвојувањето на Уникод во е-пошта било многу бавно. Некои текстови од Источна Азија сѐ уште се кодирани со кодирањата како ISO-2022, а некои уреди, како што се мобилните телефони, сè уште не можат правилно да се справат со Уникод податоците. Меѓутоа, поддршката се подобрува. Многу големи услужници за бесплатна пошта, како што се Yahoo, Google (Gmail) и Microsoft (Outlook.com) го поддржуваат.
Мрежа
[уреди | уреди извор]Сите W3C препораки го користеле Уникод како свој знак за документите, бидејќи HTML 4.0. Пребарувачите го поддржувале Уникод, особено UTF-8, и тоа многу години. Требало да има проблеми со прикажувањето на екран, што првенствено произлегувало од прашања поврзани со фонтот; на пр. v 6 и постарите верзии на Мајкрософт Интернет Експлорерот не рендерирале многу кодни точки, освен ако не им било експлицитно кажано да користат фонт што ги содржи нив.[24]
Иако правилата за синтакса можат да влијаат на редоследот на кој е дозволено знаците да се појавуваат , XML (вклучувајќи ги и XHTML) документите, по дефиниција,[25] содржат знаци од повеќето Уникод кодни точки, со исклучок на:
- повеќето од C0 контролните кодови
- трајно неназначените кодот точки D800-DFFF
- FFFE или FFFF
HTML знаците се прикажуваат или директно како бајти, според кодирањето на документот, ако кодирањето ги поддржува нив, или корисниците пак можат нив да ги напишат како бројчени наводи на знаци, врз основа на Уникод кодната точка на знакот. На пример, наводите Δ, Й, ק, م, ๗, あ, 叶, 葉, и 말 (или истите бројчени вредности изразени како хексадецимални, со &#x како претставка) би требало на сите пребарувачи да се прикажат како Δ, Й, ק ,م, ๗, あ, 叶, 葉, и 말.
Кога ги дефинирате URI-вите, на пример, како URLs или HTTP-барања, не-ASCII знаците мораат да бидат кодирани со знакот за процент.
Фонтови
[уреди | уреди извор]Бесплатните фонтови и фонтовите за малопродажба, засновани на Уникод, се широко достапни, бидејќи TrueType и OpenType го поддржуваат Уникод. Овие фонт формати ги прикажуваат Уникод кодните точки како хиероглифи.
Постојат илјадници фонтови на пазарот, но помалку од дузина (12) фонтови - понекогаш опишани како "пан-Уникод" фонтови - се обидуваат да го поддржат мнозинството од колекцијата на Уникод знаци. Наместо тоа, фонтовите засновани на Уникод обично се фокусираат на поддршка само на основниот ASCII и специфичните системи за пишување или колекции од знаци или симболи. Овој пристап го оправдуваат неколку причини: апликациите и документите ретко треба да рендерираат знаци од повеќе од еден или два система за пишување; фонтовите имаат тенденција да бараат ресурси во компјутерските средини; а оперативните системи и апликации покажуваат зголемена интелигенција во однос на добивањето информации за знакот од посебни фонт податотеки, колку што е потребно, односно, замена на фонтот. Освен тоа, создавањето на доследна колекција од инструкции за рендерирање на десетици илјади хиероглифи претставува монументална задача; таквата инвестиција ја поминува точката, од која нивото на профит е помало од вредноста на инвестициите, за повеќето типови на букви.
Нова линија (Знак за крај на ред или текст и старт на нов)
[уреди | уреди извор]Уникод делумно го адресира проблемот со новата линија, што се случува кога се обидува да чита текстуална податотека на различни платформи. Уникод дефинира голем број на знаки, кои соодветните апликации треба да ги препознаат како знаци кои означуваат крај на линија.
Во врска со новата линија, Уникод вовел U+2028 СЕПАРАТОР НА ЛИНИЈА и U+2029 СЕПАРАТОР НА ПАРАГРАФ. Тоа било обид да се обезбеди Уникод решение за кодирање на параграфи и линии семантички, потенцијално заменувајќи ги сите решенија на различните платформи. Притоа, Уникод обезбедува начин околу решенијата зависни од историската платформа. Сепак, малку или воопшто некои Уникод решенија ги прифатиле овие Уникод сепаратори за линија и параграф, како единствени канонски знаци за завршеток на линија. Сепак, заедничкиот пристап за решавање на ова прашање е преку нормализирањето на новите линии. Ова се постигнува со Cocoa текст системот во Mac OS X, како и со W3C XML и HTML препораките. Во овој пристап, секој можен знак за нова линија, е интерно трансформиран во заедничка нова линија (којашто всушност не е важна, бидејќи е внатрешна операција само за рендерирање). Со други зборови, текстуалниот систем може правилно да го третира знакот како нова линија, без оглед на вистинското кодирање на влезот.
Проблеми
[уреди | уреди извор]Филозофска критика и критика на комплетност
[уреди | уреди извор]Обединувањето на Хан (идентификација на формите во источноазиските јазици, која може да се третира како стилска варијација на истиот историски знак) станало еден од најконтроверзните аспекти на Уникод, и покрај присуството на мнозинството експерти од сите три региони во Идеографската Известувачка Група (IRG), која го советува конзорциумот и ИСО за дополнување на колкецијата и за обединувањето на Хан.[26]
Уникод бил критикуван поради тоа што не успеал оддвоено да ги кодира постарите и алтернативните форми на канџи, за кои критичарите тврдат, дека ja усложнуваат обработката на древните јапонски и невообичаените јапонски имиња. Ова е често поради фактот дека Уникод кодира знаци, наместо хиероглифи (визуелна презентација на основниот знак, кој често се разликуваат од еден јазик на друг). Обединувањето на хиероглифите води кон перцепција дека самите јазици се спојуваат,[6] а не само претставувањето на основниот знак. Имало неколку обиди да се создаваат алтернативни кодирања кои ќе ги зачувуваат стилските разлики помеѓу кинеските, јапонските и корејските знаци, наспроти политиката на Уникод за обединувањето на Хан. Пример за еден е TRON (иако тоа не е широко прифатено во Јапонија, има некои корисници кои треба да се справат со историскиот јапонски текст и да го фаворизираат).
Иако колекцијата од помалку од 21.000 Хан знаци, во најраната верзија на Уникод, била во голема мера ограничена на знаци за обична современа употреба, Уникод сега вклучува повеќе од 87.000 Хан знаци, а работата за додавање на илјадници повеќе историски и дијалектички знаци, користени во Кина, Јапонија, Кореја, Тајван и Виетнам,продолжува.
Современата технологија за фонтови нуди средство за решавање на практичното прашање на потребата да се опише унифициран Хан знак, во смисла на колекцијата од алтернативни хиероглифски претставувања, во форма на Уникод варијации на секвенци. На пример, Напредните Типографски табели на OpenType дозволуваат да се избере едно од големиот број на алтернативни симболички претставувања при создавање на знакот во процесот на мапирање со хиероглифи. Во овој случај, информациите можат да бидат обезбедени во рамките на обичниот текст, за да се назначи која алтернативна формат на знакот да се избере.
Ако соодветните хиероглифи за два знака од истиот систем на пишување се разликуваат само според закосените букви (Италик), Уникод нив генерално ги обединува, како што може да се види од споредбата помеѓу рускиот (означен стандард) и српските знаци на десно, што значи дека разликите се прикажани преку технологијата за паметни фонтови или рачно менување на фонтови.
Мапирање на наследените колекции на знаци
[уреди | уреди извор]Уникод бил создаден да обезбеди двонасочна формат претворање кодна-точка-по-кодна-точка кон и од било кое претходно постоечко кодирање на знаци, така што текстуалните податотеки од постарите колекции на знаци можат да бидат претворени во Уникод, и потоа назад, и да се врати истата податотека, без да се користи интерпретација која зависи од контекстот. Тоа значело дека некомпатибилните наследени архитектури, како што се комбинирањето на дијакритици и претходно создадени знаци, и двете постојат во Уникод, даваат повеќе од еден метод за претставување на некој текст. Ова е најочигледно кај трите различни кодни форми на Корејскиот Хангул. Од верзијата 3.0, сите претходно создадени знаци кои можеле да бидат претставени со комбинација на веќе постоечки знаци, повеќе не можат да бидат додадени во стандардот, со цел да се зачува интероперабилноста помеѓу софтверот кој користи различни верзии на Уникод.
Мора да биде обезбедено инјектирачко мапирање помеѓу знаците во постоечката наследена колекција на знаци на Уникод, за да се олесни претворањето во Уникод и да овозможи интероперабилност со наследениот софтвер. Недостатокот на доследност во различните мапирања помеѓу претходните јапонски кодирања, како што се Shift-JIS или EUC-JP и Уникод, довела до неусогласености во двонасочниот формат за претворање, особено мапирањето на знакот JIS X 0208 '~' (1-33, БРАНОВИДНА ЦРТИЧКА), кој во голема мера се користи во наследените податоци од базите на податоци, или на U+FF5E ~ ТИЛДА СО ЦЕЛОСНА ШИРОЧИНА (во Мајкрософт Виндоус) или U+301C ~ БРАНОВИДНА ЦРТИЧКА (други продавачи).[27]
Некои јапонски сметачки програмери се спротивставиле на Уникод, бидејќи тој барал од нив да ја раздвојат употребата на U+005C \ REVERSE SOLIDUS (обратна коса црта) и U+00A5 ¥ YEN SIGN (знак за јен), кој бил мапиран на 0x5C во JIS X 0201, а многу наследени кодови постојат со оваа употреба.[28] (Ова кодирање исто така, ја заменува тилдата '~' 0x7E со макрон '¯', сега 0xAF.) Раздвојувањето на овие знаци постоело во ISO 8859-1, уште многу пред Уникод.
Индиски системи за пишување
[уреди | уреди извор]На секој од индиските системи за пишување како што се Тамил и Деванагари, му се доделени само 128 кодни точки, кои се совпаѓаат со стандардот ISCII. Точното рендерирање на индискиот Уникод текст бара трансформирање на складираниот логички редослед на знаци во визуелен редослед и формирање на лигатури (како поврзувања) надвор од компонентите. Некои локални научници се изјасниле во корист на означувањето на Уникод кодните точки на овие лигатури, одејќи спротивно на праксата на другите системи за пишување, иако Уникод содржи некои арапски и други лигатури само за цели на обратната компатибилност.[29][29][29] Во Уникод нема да има кодирање на некои нови лигатури, делумно поради тоа што колекцијата од лигатури е зависна од фонтот, а Уникод е кодирање независно од варијациите на фонтови. Истиот проблем се појавил за тибетскиот систем за пишување во 2003 година, кога Администрацијата за Стандардизација на Кина предложила кодирање на 956 претходно создадени Тибетски слогови,[18] но тие биле одбиени за кодирање од страна на релевантниот ISO комитет (ISO/IEC JTC 1/SC 2).[30]
Поддршката за тајландската азбука била критикувана поради нарачката на тајландски знаци. Самогласките เ, แ, โ, ใ, ไ, кои биле напишани налево од претходната согласка се во визуелен редослед наместо во фонетски редослед, за разлика од Уникод презентациите на другите индиски системи за пишување. Оваа компликација е поради тоа што Уникод го наследил Тајландски Индустриски Стандард 620, кој работел на ист начин, и бил начин на кој Тајландскиот секогаш бил напишан на тастатурата. Овој проблем при нарачувањето малку го закомпликувал процесот на споредување на Уникод, бидејќи барал пронаоѓање на табели за преуредување на тајландските знаци за споредување.[6] Дури и ако Уникод прифатил кодирање во согласност со говорниот редослед, сè уште би било проблематично да се соберат зборовите во редоследот на речникот. На пример, зборот แสดง [sa dɛːŋ] "изврши" започнува со согласна група "สด" (со вродена самогласка за согласката "ส"), самогласката แ - во говорниот редослед треба да дојде веднаш по ด, но во речникот, зборот се споредува како што е напишан, со самогласка што следи по ส.
Комбинирање на знаци
[уреди | уреди извор]Знаците со дијакритични ознаки, генерално можат да бидат претставени или како единечен претходно создаден знак или како разградена секвенца од основната буква, плус еден или повеќе ознаки без-растојание. На пример, ḗ (претходно создадена буква е со макрон и комбиниран акут на врвот) и ḗ (буквата е која е следена од комбиниран макрон на врвот и комбиниран акут на врвот) треба да бидат рендерирани идентично, и двете да се појават како e со макрон и акут акцент, но во пракса, нивните изгледи може да варираат, во зависност од тоа која машина за рендерирање и фонтови се користени за прикажување на знаците. Слично на тоа, крукчето под буквата, како што е тоа потребно при романизацијата на Индискиот, честопати ќе биде поставено погрешно. Уникод знаците кои го мапираат претходно создадениот хиероглиф можат да бидат користени во многу случаи, со што се избегнува проблемот, но каде што претходно создадениот знак не бил кодиран, проблемот често можел да се реши со користење на специјален Уникод фонт, како што е Charis SIL кој користи Graphite, OpenType или AAT технологиите за напредни функции на рендерирање.
Аномалии
[уреди | уреди извор]Уникод стандардот има наметнато правила, со цел да се гарантира стабилност.[11] Во зависност од строгоста на правилото, промената може да биде забранета или дозволена. На пример, "името" кое е дадено на кодната точка не може и нема да се промени. Но, својството "систем на пишување" е пофлексибилно, според сопствените правила на Уникод. Во верзијата 2.0 Уникод променил многу "имиња" на кодни точки од верзијата 1. Во истиот момент, Уникод изјавил дека од тогаш па натаму, назначеното име за кодната точка никогаш повеќе нема да се промени. Ова имплицира дека кога грешките се објавени, овие грешки не можат да бидат корегирани, дури и ако тие се тривијални (како што се случило во еден случај со пишувањето на BRAKCET за BRACKET во името на знакот). Во 2006 година првпат била објавен список на аномалии во имињата на знаците, а од април 2017 година имало 94 знаци со идентификувани проблеми, на пример:[31]
- U+2118 ℘ систем на пишување големо p (HTML ℘ · & weierp;): тоа не е големо Името покажува "големо", но со мала буква. Вистинска голема е U+1D4AB 𝒫 МАТЕМАТИЧКО РАКОПИСНО ГОЛЕМО P (HTML 𝒫)[32]
- Не здружува графеми.[31]
- Ова не е Yi слог, туку ознака Yi за итерација. Неговото име, сепак, не може да биде променето поради политиката на Конзорциумот.
- Заградата е напишана неправилно. Бидејќи ова е фиксно име на знакот според правилото, тој не може да биде променет.[33]
Поврзано
[уреди | уреди извор]- Споредба на уникодни кодирања
- Верски и политички симболи во уникод
- Меѓународни компоненти за уникод
- Список на бинарни кодови
- Список на уникодни знаци
- Стандарди поврзани со уникод
- Уникодни симболи
- Универзален збир на знаци
Дополнителна литература
[уреди | уреди извор]- The Unicode Standard, Version 3.0, The Unicode Consortium, Addison-Wesley Longman, Inc., April 2000. ISBN 0-201-61633-5
- The Unicode Standard, Version 4.0, The Unicode Consortium, Addison-Wesley Professional, 27 August 2003. ISBN 0-321-18578-1
- The Unicode Standard, Version 5.0, Fifth Edition, The Unicode Consortium, Addison-Wesley Professional, 27 October 2006. ISBN 0-321-48091-0
- Julie D. Allen. The Unicode Standard, Version 6.0, The Unicode Consortium, Mountain View, 2011, ISBN 9781936213016, ([1]).
- The Complete Manual of Typography, James Felici, Adobe Press; 1st edition, 2002. ISBN 0-321-12730-7
- Unicode: A Primer, Tony Graham, M&T books, 2000. ISBN 0-7645-4625-2.
- Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard, Richard Gillam, Addison-Wesley Professional; 1st edition, 2002. ISBN 0-201-70052-2
- Unicode Explained, Jukka K. Korpela, O'Reilly; 1st edition, 2006. ISBN 0-596-10121-X
Наводи
[уреди | уреди извор]- ↑ 1,0 1,1 1,2 Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ Sharan, Kishori (2014). Beginning Java 8 Fundamentals. Berkeley, CA: Apress. стр. 727–737. ISBN 9781430266525.
- ↑ IEEE Standard for Conformance to IEEE 802.20 Systems--Protocol Implementation Conformance Statement (PICS) Proforma, IEEE, Посетено на 2018-12-09
- ↑ 4,0 4,1 4,2 4,3 4,4 4,5 Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ „Table 2: Summary of lipases in UM 591 retrieved from homology search using Lipase Engineering database“. dx.doi.org. Посетено на 2018-12-09.
- ↑ 6,0 6,1 6,2 6,3 6,4 6,5 6,6 6,7 Crispin, M. (октомври 2007). „i;unicode-casemap - Simple Unicode Collation Algorithm“. Наводот journal бара
|journal=
(help) - ↑ „Glossary of Main Terms“. dx.doi.org. 2010-02-15. Посетено на 2018-12-09.
- ↑ PDF@Flash. Berlin, Heidelberg: Springer Berlin Heidelberg. 2010. стр. 7–16. ISBN 9783642035982.
- ↑ „Data S2: Accession numbers for DNA sequences retrieved from GenBank“. dx.doi.org. Посетено на 2018-12-09.
- ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ 11,0 11,1 11,2 McGowan, R. (февруари 2004). „A Summary of Unicode Consortium Procedures, Policies, Stability, and Public Access“. Наводот journal бара
|journal=
(help) - ↑ 12,00 12,01 12,02 12,03 12,04 12,05 12,06 12,07 12,08 12,09 12,10 12,11 12,12 12,13 12,14 12,15 12,16 12,17 12,18 Celko, Joe (2010). Joe Celko's Data, Measurements and Standards in SQL. Elsevier. стр. 231–234. ISBN 9780123747228.
- ↑ Wearable Android™. Hoboken, NJ: John Wiley & Sons, Inc. 2015-08-07. стр. 213–243. ISBN 9781119051091.
- ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ Crispin, M. (април 2005). „UTF-9 and UTF-18 Efficient Transformation Formats of Unicode“. Наводот journal бара
|journal=
(help) - ↑ [The Unicode Standard, Version 6 февруари The Unicode Consortium. 2013. p. 561. ISBN 978-1-936213-08-5. The Unicode Standard, Version 6 февруари The Unicode Consortium. 2013. p. 561. ISBN 978-1-936213-08-5.] Проверете ја вредноста
|url=
(help). Наводот journal бара|journal=
(help); Отсутно или празно|title=
(help) - ↑ 18,0 18,1 Information technology. European Subsets of ISO/IEC 10646-1, BSI British Standards, Посетено на 2018-12-09
- ↑ Information technology. Universal Multiple-Octet Coded Character Set (UCS), BSI British Standards, Посетено на 2018-12-09
- ↑ „Gibson, Jonathan Hedley, (born 30 March 1960), a Circuit Judge, since 2008“. Who's Who. Oxford University Press. 2009-12-01.
- ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ Windows Vista. Berkeley, CA: Apress. стр. 217–233. ISBN 9781590597712.
- ↑ „XML (Extensible Markup Language)“. AccessScience. Посетено на 2018-12-09.
- ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ Spolsky, Joel (2004). Joel on Software. Berkeley, CA: Apress. стр. 31–43. ISBN 9781590593899.
- ↑ Iso 9001. CRC Press. 2001-06-28. ISBN 9781574443073.
- ↑ 29,0 29,1 29,2 Leuski, Anton (1999-01-01). „Evaluating a Visual Presentation of Retrieved Documents“. Fort Belvoir, VA. Наводот journal бара
|journal=
(help) - ↑ Грешка во Lua: bad argument #1 to 'match' (string expected, got nil)
- ↑ 31,0 31,1 „The Unicode Code Points and Internationalized Domain Names for Applications (IDNA) - Unicode 6.0“. ноември 2011. Наводот journal бара
|journal=
(help) - ↑ „Figure 1.24. Credit growth has remained robust despite its recent weakening in a few EMEs“. dx.doi.org. Посетено на 2018-12-09.
- ↑ Constraints on Error Variables in Grammar. Amsterdam: John Benjamins Publishing Company. 1986. стр. 481. ISBN 9789027220141.
Надворешни врски
[уреди | уреди извор]- Матична страница — The Unicode Consortium
- Уникод на Curlie (англиски)
- Alan Wood's Unicode Resources – Contains lists of word processors with Unicode capability; fonts and characters are grouped by type; characters are presented in lists, not grids.
|