Шта је Уникод: Комплетан водич, употреба и кодирање

Последње ажурирање: КСНУМКС августа КСНУМКС
  • Уникод додељује јединствену кодну тачку сваком знаку и синхронизује његов репертоар са ISO/IEC 10646.
  • UTF-8, UTF-16 и UTF-32 кодирају исте знакове и омогућавају конверзију без губитака.
  • Нормализација, Bidi и UCD својства обезбеђују доследно поређење, уређивање и рендеровање.
  • Усвајање Уникода (пожељно UTF-8 на вебу) спречава корупцију и олакшава интернационализацију.

Генеричка илустрација о Уникоду

Уникод је заједнички језик који рачунари користе када обрађују текст : он додељује јединствени број сваком знаку и симболу, из скоро сваког система писања, тако да се може без проблема чувати, обрађивати и делити између платформи и земаља.

Овај стандард је настао како би превазишао ограничења старих скупова знакова ( ASCII скуп , кодне странице, EBCDIC итд.), који нису били довољни или су били некомпатибилни једни са другима, а данас је синхронизован са ISO/IEC 10646, одржава алгоритме (као што је двосмерни) и дефинише својства и правила нормализације тако да све ради конзистентно.

Шта је Уникод и зашто је толико важан?

Уникод је универзални и стално еволуирајући стандард за кодирање знакова који описује сваки знак именом, кодном тачком и скупом својстава (писмо, категорија, смер, велика и мала слова итд.). Технички комитет Уникода (UTC), у оквиру Уникод конзорцијума, одржава га синхронизованим са стандардом ISO/IEC 10646.

Његов циљ је универзалност, једнообразност и јединственост : широк репертоар који омогућава недвосмислену размену вишејезичног текста, са јасним и репродуцибилним правилима. Захваљујући томе, модерне технологије (оперативни системи, прегледачи, XML, Јава, базе података) могу да комбинују латинична и арапска писма, идеограме CJK, емоџије и техничке или музичке симболе у ​​истом документу.

Знакови, глифови и кодне тачке

У Уникоду, знак је апстрактна јединица информације, а кодна тачка је њен нумерички идентификатор . Глиф је визуелни облик (оно што видите на екрану), који зависи од фонта . Један знак може имати више глифова, а понекад глиф представља више од једног знака.

Уобичајена нотација за кодну тачку је U+XXXX у хексадецималном систему . Илустративни примери из анализираног материјала: мало слово 'l' је U+006C, унапред састављено мало слово 'ü' је U+00FC, 'é' је U+00E9 и грчка бета: велико слово је U+0392, а мало слово U+03B2 (у неким текстовима 'β' се наводи са U+0392, али тај код одговара великом слову 'Β').

Уникод кодни простор има 1.114.112 могућих позиција (до U+10FFFF) , организованих да покрију и класификују све системе писања и симболе, са десетинама хиљада ефективних и растућих додела у свакој верзији.

Планови, подручја и блокови

Уникод дели свој простор знакова на 17 равни, од којих свака има до 65.536 кодних тачака . Ова организација олакшава груписање повезаних списа и симбола и брзо проналажење онога што тражите.

Најрелевантније равни : Основна вишејезична раван (BMP, раван 0) обједињује скоро све модерне азбуке и многе симболе; Додатна вишејезична раван (SMP, раван 1) чува историјска писма и техничке симболе (нпр. музичке и математичке); Додатна идеографска раван (SIP, раван 2) проширује идеограме CJK; раван 14 (SSP) укључује посебне ознаке; а равни 15 и 16 су за приватну употребу.

Блокови и области : мапе су неформално подељене на области, а формално на суседне блокове. Блокови се користе за табеларно приказивање и документовање знакова, иако не одговарају увек смисленим језичким групама.

  Компјутеризовани системи управљања залихама

Идеограми ЦЈК и пројекат Унихан

Источноазијски (Хан) идеограми су обједињени у Уникоду са стилским варијацијама по регионима , али сви се односе на исти апстрактни карактер. Њиме управља Група за идеографске известитеље (IRG), група ISO/IEC JTC1/SC2/WG2 са представницима Кине, Јапана, Кореје, Вијетнама, Хонг Конга, Макаа, Сингапура, САД и других.

База података Унихан обједињује помоћне информације (читања, значења, еквиваленције) неопходне за руковање овим идеограмима на различитим језицима и историјским или корпоративним стандардима.

Главни CJK блокови и проширења :

  • Уједињени идеограми ЦЈК (БМП, У+4Е00–У+9ФФФ)20.992 често коришћених карактера.
  • Проширење А (BMP, U+3400–U+4DBF)6.592 ређих идеограма.
  • Б–Х екстензије: у SMP/SIP/TIP, они се сабирају и до десетина хиљада више (B: U+20000–U+2A6DF, 42.720; C: U+2A700–U+2B73F, 4.154; D: U+2B740–U+2B81F, 222; E: U+2B820–U+2CEAF, 5.762; F: U+2CEB0–U+2EBEF, 7.473; G: U+30000–U+3134F, 4.939;
  • Остали повезани CJK блоковиКангси радикали (U+2F00–U+2FDF), ЦЈК симболи и интерпункција (U+3000–U+303F), компатибилност и формати компатибилности, додатак идеограму компатибилности итд.

Уникод предвиђа да укључивање идеограма неће имати апсолутни крај и разматра механизме као што су идеографски описни низови за представљање некодираних симбола њиховим разлагањем на постојеће компоненте (уз упозорења: без канонске декомпозиције или гаранција у операцијама као што су претраживање или уређивање).

Облици кодирања: UTF-8, UTF-16 и UTF-32

Уникод дефинише облике трансформације (UTF) који конвертују кодне тачке у јединице за складиштење тако да софтвер може ефикасно обрађивати текст у складу са његовим контекстом.

UTF-8 је формат кодирања променљиве дужине, оријентисан на бајтове, који је ASCII компатибилан у опсегу U+0000–U+007F у једном бајту. Тренутни стандард користи 1 до 4 бајта по знаку; неки старији текстови помињу 1–6, али у модерном Уникоду то је 1–4. То је доминантан формат на вебу.

UTF-16 користи 16-битне јединице

(једна или две кодне јединице по знаку) : већина BMP знакова стаје у једну јединицу; допунски знакови користе сурогат парове у опсегу U+D800–U+DFFF.

UTF-32 је фиксне дужине: 4 бајта по карактеру, једноставан, али заузима много простора; користан када је директно индексирање карактера важно, а меморија није проблем.

Како се битови дистрибуирају у UTF-8

UTF-8 формат дистрибуира битове кодних тачака у секвенце од 1 до 4 бајта са препознатљивим заглављима, што избегава двосмислености и олакшава откривање граница карактера.

Уникод опсег Битни образац бајтова
У+0000..У+007Ф КСНУМКСккккккк 1
У+0080..У+07ФФ 110yyyyy 10xxxxxx 2
У+0800..У+ФФФФ 1110zzzz 10yyyyyy 10xxxxxx 3
У+010000..У+10ФФФФ 11110uuu 10uuuzzzz 10yyyyyy 10xxxxxx 4

Кључна предност UTF-8 је то што избегава проблеме са редоследом бајтова (endianness) и омогућава веома ефикасну обраду текстуалних токова, поред тога што је уназад компатибилан са ASCII.

Шеме кодирања, ендијански распоред и BOM

Поред UTF облика, Unicode описује шеме серијализације које решавају како се бајтови преносе између система са различитим endian-ом и како се сигнализирају аспекти као што је редослед бајтова.

  • УТФ-КСНУМКС: ендијански редослед се не примењује. Може се преносити Ознака редоследа бајтова (BOM) као назнака, иако није обавезна нити препоручена подразумевано.
  • УТФ-КСНУМКСBE/LE (big/little-endian) варијанте и опциони BOM (ако недостаје и није дефинисано протоколом, претпоставља се big-endian).
  • УТФ-КСНУМКС: BE/LE варијанте са аналогним правилима; BOM дозвољен као ознака поруџбине.
  ИТ иновације: најновији трендови

Постоје и специфичне варијанте као што су UTF-16BE/UTF-16LE и UTF-32BE/UTF-32LE (без BOM-а по конвенцији), и друга историјска компатибилна кодирања као што су UTF-7 или UTF-EBCDIC, поред GB18030 (кинески еквивалент UTF-8 са подршком за поједностављени и традиционални кинески).

Нормализација, композиција и еквиваленције

Многи знакови могу бити представљени као унапред састављени или као низови основе + комбинујућих знакова . Класични примери из ревидираног материјала: унапред састављени 'Ä' је U+00C4, док је декомпоновани облик 'A' (U+0041) + дијареза (U+0308). Вијетнамски 'ỗ' може бити представљен као 'o' (U+006F) + циркумфлекс (U+0302) + тилда (U+0303).

Уникод дефинише стандардизоване облике и две врсте еквиваленције : канонску (исти суштински садржај) и компатибилност (облици који могу изгледати исто, али имају семантичке разлике). Стандардизација обезбеђује поуздано поређење низова и смањује дуплирање.

Двосмерни алгоритам и специјални знакови

За писма која се пишу здесна налево, као што су арапски или хебрејски, Уникод укључује стандардизовани и еволуирајући двосмерни алгоритам (Bidi) (нпр. ревизије у верзији 6.3), тако да су мешовити текстови са латиничним и арапским писмом представљени исправним визуелним редоследом.

Класе кодних тачака које треба знати према примљеном материјалу: графички знакови (слова, знаци, симболи), форматирање (невидљиви знакови који утичу на обраду: U+2028 прелом реда, U+2029 прелом пасуса, U+00A0 тврди размак), наслеђени контролни кодови за компатибилност (опсези U+0000–U+001F, U+007F, U+0080–U+009F), приватна употреба, резервисане позиције, замене (U+D800–U+DFFF за UTF-16) и некарактери (U+FFFE, U+FFFF у свакој равни).

Unicode, ISO/IEC 10646 и други стандарди (ASCII, ANSI, кодне странице)

Уникод је синхронизован са ISO/IEC 10646 (UCS) и задржава мапирања на претходне стандарде (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643, итд.), поред резервисања простора за приватну употребу од стране произвођача.

ASCII наспрам Unicode-а : ASCII је 7-битни скуп знакова са 128 знакова , довољан за основни енглески језик, али недовољан за језике са дијакритичким знацима, идеограмима или емоџијима . Unicode покрива више од 140.000 знакова и наставља да расте, са 8/16/32-битним кодирањем према UTF-12 формату.

ANSI и кодне странице : „ANSI“ се обично односи на ограничене и међусобно некомпатибилне 8-битне Windows кодне странице. Рачунар који користи OEM-Latin II и отвара текст у IBM EBCDIC-ћирилици видеће погрешне знакове. Unicode превазилази овај проблем једним скупом знакова и конверзијама без губитака између сопствених облика.

Имплементација на системима (Windows, Solaris) и конверзија

Виндоус интерно користи UTF-16 за своје модерне API-је и нуди функције као што су MultiByteToWideChar и WideCharToMultiByte за конвертовање између Unicode и кодних страница (SBCS/DBCS/MBCS). Ако сте приморани да конвертујете у кодну страницу, може доћи до губитка података ако она не може да представи све знакове.

Нове апликације на Windows-у треба да користе UTF-16 интерно и да конверзију оставе на рубовима рачунара (I/O, протоколи), минимизирајући оштећења. Упркос томе, Windows одржава компатибилност са кодним страницама када је то неизбежно.

Oracle Solaris 11, према ревидираној документацији, подржава Unicode 6.0 и ISO/IEC 10646:2011 на системском нивоу, користећи UTF-8 као подразумевани формат у својим скуповима параметара, што штеди проблеме са уређивањем бајтова и транспарентно чува ASCII.

Уникод у пракси: Веб, документи и програмирање

На вебу је уобичајено да се садржај приказује и чува у UTF-8 кодирању . У HTML-у, декларишите '<meta charset="UTF-8">' да бисте осигурали компатибилност и користите хексадецималне нумеричке ентитете када је потребно (пример: евро '&#x20AC;').

  Шта је рециклажа и чему служи: Потпуни водич

У програму Word можете лако уметнути Unicode симболе постављањем курсора, одласком на Insert > Symbol или укуцавањем кода и притиском на Alt+X; ово претвара вредност у њен карактер, пратећи стандардне процедуре. Погледајте и листу Alt кодова за уметање симбола са тастатуре.

У програмским језицима : у Пајтону 3, стрингови су већ Уникод; у Јави и C#, можете користити излазне карактере '\uXXXX'; у HTML-у, '&#xXXXX;'. Важно је да уређивање, компајлирање и пренос користе исто кодирање како би се избегле грешке.

Копирање и лепљење симбола функционише ако је цео стринг у Уникоду . Ако делови користе другачије кодирање, могу се појавити упитници, квадратићи или други чудни симболи.

База података карактера (UCD), својства и категорије

База података карактера Уникода (UCD) објављује, за сваку кодну тачку, њено име, категорију, писмо, својства великих и малих слова, смер и друге карактеристике . Ове информације су од виталног значаја за исправно функционисање система за рендеровање и обраду текста.

Захваљујући овим својствима , различите компоненте и алгоритми (као што су сортирање, сегментација речи или трансформација великих/малих слова) могу се понашати конзистентно са истим подацима.

Верзије и проширења стандарда: најважније

Уникод расте са сваком верзијом , укључујући нова писма, симболе и емоџије. Кључне прекретнице укључују верзију 1.0 из 1991. године са 7.161 знаком и накнадна проширења која су додата на хиљаде нових симбола, идеограма, емоџија и писма.

На пример, 2022. године , верзија 15.0 је додала 4.192 додатних идеограма CJK и других елемената, достигавши приближно 149.186 знакова.

Алати за истраживање Unicode табеле

Постоје бесплатни алати за претрагу и анализу знакова : Unibook Character Browser, SYMBL и Branah.com вам омогућавају да претражујете својства, имена и блокове знакова, што програмерима и креаторима садржаја олакшава брзо проналажење потребних информација.

Случајеви употребе: обрасци адреса, интернационализација и пословање

Омогућавање корисницима да уносе адресе на свом језику и писму помаже у смањењу грешака и побољшању корисничког искуства. Поред тога, интероперабилност Уникода спречава проблеме са конверзијом између различитих система, одржавајући интегритет текста у целом дигиталном ланцу.

Из тог разлога, Уникод је основни елемент који осигурава да текст остане коначан у целој дигиталној инфраструктури , од веб образаца до система база података и штампаних докумената, без обзира да ли користите „ñ“, арапски, кинески или емоџије у истој реченици.

Бинарно нумерисање
Повезани чланак:
Бинарно нумерисање: Тајни језик рачунара