Mis on Unicode: täielik juhend, kasutusalad ja kodeeringud

Viimane uuendus: 20 august 2025
  • Unicode määrab igale tähemärgile unikaalse koodipunkti ja sünkroniseerib selle repertuaari standardiga ISO/IEC 10646.
  • UTF-8, UTF-16 ja UTF-32 kodeerivad samu märke ja võimaldavad kadudeta teisendamist.
  • Normaliseerimine, kahesuunaline kuvasus ja universaalne CD-atribuudid tagavad järjepideva võrdlemise, järjestuse ja renderdamise.
  • Unicode'i (veebis eelistatavalt UTF-8) kasutuselevõtt hoiab ära korruptsiooni ja hõlbustab rahvusvahelistumist.

Üldine illustratsioon Unicode'i kohta

Unicode on arvutite tekstitöötluskeel : see määrab igale tähemärgile ja sümbolile unikaalse numbri peaaegu igast kirjutamissüsteemist, et seda saaks sujuvalt salvestada, töödelda ja jagada platvormide ja riikide vahel.

See standard loodi vanade märgistike ( ASCII , koodilehed, EBCDIC jne) piirangute ületamiseks, mis olid ebapiisavad või omavahel ühildumatud, ning tänapäeval on see sünkroniseeritud standardiga ISO/IEC 10646, haldab algoritme (näiteks kahesuunalist) ning määratleb omadused ja normaliseerimisreeglid, et kõik toimiks järjepidevalt.

Mis on Unicode ja miks see nii oluline on?

Unicode on universaalne ja pidevalt arenev märgikodeeringu standard , mis kirjeldab iga märki nime, koodipunkti ja omaduste komplektiga (skript, kategooria, suund, suur- ja väiketäht jne). Unicode'i konsortsiumi Unicode'i tehniline komitee (UTC) hoiab seda standardiga ISO/IEC 10646 kooskõlas.

Selle eesmärk on universaalsus, ühtsus ja ainulaadsus : lai repertuaar, mis võimaldab mitmekeelse teksti üheselt mõistetavat vahetamist selgete ja reprodutseeritavate reeglite abil. Tänu sellele saavad tänapäevased tehnoloogiad (operatsioonisüsteemid, brauserid, XML, Java, andmebaasid) samas dokumendis segada ladina ja araabia tähti, hiina ja iiri kirjakeeli ideogramme, emotikone ning tehnilisi või muusikalisi sümboleid.

Tähemärgid, glüüfid ja koodipunktid

Unicode'is on märk abstraktne teabeühik ja koodipunkt on selle numbriline identifikaator . Glüüf on visuaalne vorm (see, mida näete ekraanil), mis sõltub fondist . Ühel märgil võib olla mitu glüfi ja mõnikord tähistab glüf rohkem kui ühte märki.

Koodipunkti tavapärane tähistus on kuueteistkümnendsüsteemis U+XXXX . Illustreerivad näited analüüsitud materjalist: väiketäht 'l' on U+006C, eelnevalt moodustatud väiketäht 'ü' on U+00FC, 'é' on U+00E9 ja kreeka beeta: suurtäht on U+0392 ja väiketäht U+03B2 (mõnes tekstis on 'β' viidatud koos U+0392-ga, kuid see kood vastab suurtähele 'Β').

Unicode'i koodiruumis on 1 114 112 võimalikku positsiooni (kuni U+10FFFF) , mis on korraldatud nii, et need hõlmaksid ja klassifitseeriksid kõiki kirjasüsteeme ja sümboleid, kusjuures igas versioonis on kümneid tuhandeid efektiivseid ja pidevalt arenevaid määramisi.

Plaanid, alad ja kvartalid

Unicode jagab oma märgiruumi 17 tasapinnaks, millest igaühes on kuni 65 536 koodipunkti . See korraldus lihtsustab seotud skriptide ja sümbolite rühmitamist ning kiiret otsitava leidmist.

Kõige olulisemad tasandid : põhiline mitmekeelne tasand (BMP, tasand 0) koondab peaaegu kõik tänapäevased tähestikud ja paljud sümbolid; täiendav mitmekeelne tasand (SMP, tasand 1) talletab ajaloolisi kirju ja tehnilisi sümboleid (nt muusikalisi ja matemaatilisi); täiendav ideograafiline tasand (SIP, tasand 2) laiendab hiina ja itaalia keele ideogramme; tasand 14 (SSP) sisaldab spetsiaalseid silte; ning tasandid 15 ja 16 on mõeldud isiklikuks kasutamiseks.

Plokid ja alad : kaardid on mitteametlikult jagatud aladeks ja formaalselt külgnevateks plokkideks. Plokke kasutatakse märkide tabelisse kandmiseks ja dokumenteerimiseks, kuigi need ei vasta alati tähendusrikastele keelelistele rühmitustele.

  Teaduse ja tehnoloogia võrdlev tabel

CJK ideogrammid ja Unihani projekt

Ida-Aasia (hani) ideogrammid on Unicode'is ühtsed, stilistiliselt on piirkonniti erinevaid , kuid kõik viitavad samale abstraktsele märgile. Nende haldamisega tegeleb ideograafiline raportöörgrupp (IRG), mis on ISO/IEC JTC1/SC2/WG2 rühm, kuhu kuuluvad Hiina, Jaapan, Korea, Vietnam, Hongkong, Macau, Singapur, USA ja teised riigid.

Unihani andmebaas koondab abiteavet (näited, tähendused, samaväärsused), mis on oluline nende ideogrammide käsitlemiseks erinevates keeltes ja ajaloolistes või ettevõtte standardites.

Peamised CJK plokid ja laiendused :

  • CJK ühendatud ideograafiad (BMP, U+4E00–U+9FFF)20.992 XNUMX tavaliselt kasutatavat tähemärki.
  • Laiendus A (BMP, U+3400–U+4DBF)6.592 harvemini esinevat ideogrammi.
  • B–H laiendusedSMP/SIP/TIP puhul on neid kokku kümneid tuhandeid rohkem (B: U+20000–U+2A6DF, 42.720 2; C: U+700A2–U+73B4.154F, 2; D: U+740B2–U+81B222F, 2; E: U+820B2–U+5.762CEAF, 2; F: U+0CEB2–U+7.473EBEF, 30000; G: U+3134–U+4.939F, 31350;
  • Muud seotud CJK plokidKangxi radikaalid (U+2F00–U+2FDF), CJK sümbolid ja kirjavahemärgid (U+3000–U+303F), ühilduvus ja ühilduvusvormingud, ühilduvuse ideogrammi lisa jne.

Unicode eeldab, et ideogrammide lisamine ei ole absoluutselt lõppenud ja kaalub selliseid mehhanisme nagu ideograafilised kirjeldusjärjestused, et esitada kodeerimata sümboleid, jagades need olemasolevateks komponentideks (ettevaatusabinõudega: ilma kanoonilise lagundamise või garantiideta sellistes toimingutes nagu otsimine või järjestamine).

Kodeerimisvormid: UTF-8, UTF-16 ja UTF-32

Unicode defineerib teisendusvorme (UTF), mis teisendavad koodipunktid salvestusühikuteks, et tarkvara saaks teksti konteksti järgi tõhusalt töödelda.

UTF-8 on muutuva pikkusega, baitipõhine kodeerimisvorming, mis on ASCII-ühilduv vahemikus U+0000–U+007F ühes baidis. Praegune standard kasutab 1 kuni 4 baiti tähemärgi kohta; mõned vanemad tekstid mainivad 1–6, kuid tänapäevases Unicode'is on see 1–4. See on veebis domineeriv vorming.

UTF-16 kasutab 16-bitiseid ühikuid

(üks või kaks koodiühikut tähemärgi kohta) : enamik BMP märke mahub ühte ühikusse; täiendavad märgid kasutavad asenduspaare vahemikus U+D800–U+DFFF.

UTF-32 on fikseeritud pikkusega: 4 baiti tähemärgi kohta, lihtne, aga ruumimahukas; kasulik, kui otsene märkide indekseerimine on oluline ja mälu pole probleemiks.

Kuidas bitte UTF-8-s jaotatakse

UTF-8 formaat jaotab koodipunkti bitid 1–4-baidisteks jadadeks , millel on äratuntavad päised, mis väldib ebaselgust ja hõlbustab märgipiiride tuvastamist.

Unicode'i vahemik Bitimuster Bytes
U+0000..U+007F 0xxxxxxxx 1
U+0080..U+07FF 110yyyyy 10xxxxxx 2
U+0800..U+FFFF 1110zzzz 10yyyyyy 10xxxxxx 3
U+010000..U+10FFFF 11110uuu 10uuuzzzz 10yyyyyy 10xxxxxx 4

UTF-8 peamine eelis on see, et see väldib baitide järjekorra (endiansuse) probleeme ja võimaldab tekstivoogude ülitõhusat töötlemist, lisaks on see tagasiühilduv ASCII-ga.

Kodeerimisskeemid, lõpupärasus ja BOM

Lisaks UTF-vormidele kirjeldab Unicode serialiseerimisskeeme, mis lahendavad, kuidas baite edastatakse erineva lõpuga süsteemide vahel ja kuidas selliseid aspekte nagu baitide järjekord signaalitakse.

  • UTF-8: lõpupärasus ei kehti. Seda saab kanda Baitide järjekorra märk (BOM) vihjeks, kuigi see pole vaikimisi nõutav ega soovitatav.
  • UTF-16BE/LE (big/little-endian) variandid ja valikuline BOM (kui puudub ja protokolliga defineerimata, eeldatakse big-endiani).
  • UTF-32BE/LE variandid analoogsete reeglitega; BOM on lubatud tellimismärgina.
  Suurandmete analüüs: muutev otsuste tegemine

Lisaks GB18030-le (hiina keeles UTF-8 vaste, mis toetab lihtsustatud ja traditsioonilist hiina keelt) on olemas ka spetsiifilised variandid , näiteks UTF-16BE/UTF-16LE ja UTF-32BE/UTF-32LE (kokkuleppeliselt ilma BOM-ita) ning muud ajalooliselt ühilduvad kodeeringud, näiteks UTF-7 või UTF-EBCDIC.

Normaliseerimine, kompositsioon ja ekvivalentsused

Paljusid märke saab esitada eelnevalt moodustatud kujul või alus- ja liitmärkide jadadena . Klassikalised näited läbivaadatud materjalist: eelnevalt moodustatud 'Ä' on U+00C4, samas kui dekompositsioonvorm on 'A' (U+0041) + diaerees (U+0308). Vietnami 'ỗ' saab esitada kui 'o' (U+006F) + tsirkumfleks (U+0302) + tilde (U+0303).

Unicode defineerib standardiseeritud vorme ja kahte tüüpi ekvivalentsust : kanoonilise (sama põhisisu) ja ühilduvuse (vormid, mis võivad tunduda samad, kuid millel on semantilised erinevused). Standardiseerimine tagab usaldusväärse stringide võrdluse ja vähendab dubleerimist.

Kahesuunaline algoritm ja erimärgid

Paremalt vasakule kirjutatavate kirjastiilide, näiteks araabia või heebrea keele puhul sisaldab Unicode standardiseeritud ja pidevalt arenevat kahesuunalist algoritmi (Bidi) (nt versioonis 6.3), nii et ladina ja araabia kirjasüsteemiga segatekstid kuvatakse õiges visuaalses järjekorras.

Koodipunktide klassid, mis peaksid vastavalt saadud materjalile olema teada: graafilised märgid (tähed, märgid, sümbolid), vormindus (nähtamatud märgid, mis mõjutavad töötlemist: U+2028 reavahetus, U+2029 lõiguvahetus, U+00A0 tühik), päritud juhtkoodid ühilduvuse tagamiseks (vahemikud U+0000–U+001F, U+007F, U+0080–U+009F), privaatne kasutamine, reserveeritud positsioonid, asendajad (U+D800–U+DFFF UTF-16 jaoks) ja mittemärgid (U+FFFE, U+FFFF igal tasandil).

Unicode, ISO/IEC 10646 ja muud standardid (ASCII, ANSI, koodilehed)

Unicode on sünkroniseeritud standardiga ISO/IEC 10646 (UCS) ja säilitab vastavused varasematele standarditele (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643 jne), lisaks on tootjate isiklikuks kasutamiseks reserveeritud ruumid.

ASCII vs. Unicode : ASCII on 7-bitine märgistik , mis koosneb 128 tähemärgist ja on piisav inglise keele põhioskuste jaoks, kuid ebapiisav diakriitikute, ideogrammide või emotikonidega keelte jaoks . Unicode hõlmab üle 140 000 tähemärgi ja see arv kasvab pidevalt, kasutades 8/16/32-bitist kodeeringut vastavalt UTF-12 vormingule.

ANSI ja koodilehed : „ANSI” viitab tavaliselt piiratud ja vastastikku ühildumatutele 8-bitistele Windowsi koodilehtedele. Arvuti, mis käitab OEM-Latin II koodisüsteemi ja avab teksti IBM EBCDIC-kirillitsa tähestikus, näeb valesid märke. Unicode lahendab selle probleemi ühe märgistiku ja kadudeta teisendustega oma vormide vahel.

Süsteemide (Windows, Solaris) juurutamine ja konverteerimine

Windows kasutab oma moodsate API-de jaoks sisemiselt UTF-16 koodi ja pakub Unicode'i ja koodilehtede (SBCS/DBCS/MBCS) vaheliseks teisendamiseks selliseid funktsioone nagu MultiByteToWideChar ja WideCharToMultiByte . Kui olete sunnitud koodilehele teisendama, võib tekkida andmete kadu, kui see ei suuda kõiki märke esitada.

Uued Windowsi rakendused peaksid sisemiselt kasutama UTF-16 koodi ja jätma teisendamise servadele (I/O, protokollid), et minimeerida koodivigade teket. Sellegipoolest säilitab Windows ühilduvuse koodilehtedega, kui see on vältimatu.

Läbivaadatud dokumentatsiooni kohaselt toetab Oracle Solaris 11 süsteemitasandil Unicode 6.0 ja ISO/IEC 10646:2011 standardeid, kasutades parameetrite komplektides vaikevorminguna UTF-8, mis säästab baitide järjestamise probleeme ja säilitab läbipaistvalt ASCII.

Unicode praktikas: veeb, dokumendid ja programmeerimine

Veebis on tavaline, et sisu esitatakse ja salvestatakse UTF-8 koodis . HTML-is deklareeritakse ühilduvuse tagamiseks '<meta charset="UTF-8">' ja vajadusel kasutatakse kuueteistkümnendsüsteemis numbrilisi üksusi (näiteks: euro '&#x20AC;').

  Arvutiteadus ja programmeerimine: tehnoloogia tulevik

Wordis saate Unicode'i sümboleid hõlpsalt sisestada, asetades kursori, minnes menüüsse Lisa > Sümbol või tippides koodi ja vajutades klahvikombinatsiooni Alt+X; see teisendab väärtuse vastavaks märgiks, järgides standardprotseduure. Vaadake ka Alt-koodide loendit sümbolite sisestamiseks klaviatuurilt.

Programmeerimiskeeltes : Python 3-s on stringid juba Unicode'is; Javas ja C#-s saab kasutada paomärke '\uXXXX'; HTML-is '&#xXXXX;'. Oluline on see, et redigeerimisel, kompileerimisel ja edastamisel kasutataks sama kodeeringut, et vältida vigu.

Sümbolite kopeerimine ja kleepimine toimib, kui kogu string on Unicode'is . Kui selle osad kasutavad teistsugust kodeeringut, võivad ilmuda küsimärgid, ruudud või muud kummalised sümbolid.

Märkide andmebaas (UCD), omadused ja kategooriad

Unicode'i märkide andmebaas (UCD) avaldab iga koodipunkti kohta selle nime, kategooria, skripti, tähesuuruse omadused, suuna ja muud omadused . See teave on renderdusmootorite ja tekstitöötluse korrektseks toimimiseks ülioluline.

Tänu nendele omadustele saavad erinevad komponendid ja algoritmid (näiteks sortimine, sõnade segmenteerimine või suur-/väiketähtede teisendamine) samade andmetega järjepidevalt käituda.

Standardi versioonid ja laiendused: olulisemad punktid

Unicode kasvab iga versiooniga , lisades uusi skripte, sümboleid ja emotikone. Oluliste verstapostide hulka kuuluvad 1991. aasta versioon 1.0 7.161 tähemärgiga ja hilisemad laiendused, mis on lisanud tuhandeid uusi sümboleid, ideogramme, emotikone ja skripte.

Näiteks 2022. aastal lisati versioonile 15.0 4.192 täiendavat CJK ideogrammi ja muud elementi, ulatudes ligikaudu 149 186 tähemärgini.

Unicode'i tabeli uurimise tööriistad

Tähemärkide otsimiseks ja analüüsimiseks on olemas tasuta utiliidid : Unibook Character Browser, SYMBL ja Branah.com võimaldavad teil pärida omadusi, nimesid ja tähemärkiplokke, muutes arendajate ja sisuloojate jaoks vajaliku teabe kiire leidmise lihtsamaks.

Kasutusjuhud: aadressivormid, rahvusvahelistumine ja äri

Kasutajate aadresside sisestamise võimaldamine oma keeles ja tähestikus aitab vähendada vigu ja parandada kasutuskogemust. Lisaks hoiab Unicode'i koostalitlus ära teisendusprobleemid erinevate süsteemide vahel, säilitades teksti terviklikkuse kogu digitaalses ahelas.

Sel põhjusel on Unicode põhielement, mis tagab teksti lõplikkuse kogu digitaalses infrastruktuuris , alates veebivormidest kuni andmebaasisüsteemide ja trükitud dokumentideni, olenemata sellest, kas samas lauses kasutatakse 'ñ', araabia, hiina keelt või emotikone.

Binaarne nummerdamine
Seotud artikkel:
Binaarne nummerdamine: arvutite salakeel