Mikä on Unicode: Täydellinen opas, käyttötarkoitukset ja koodaukset

Viimeisin päivitys: 20 elokuu 2025
Kirjoittaja: TecnoDigital
  • Unicode määrittää jokaiselle merkille yksilöllisen koodipisteen ja synkronoi sen repertuaarin ISO/IEC 10646 -standardin kanssa.
  • UTF-8, UTF-16 ja UTF-32 koodaavat samat merkit ja mahdollistavat häviöttömän muuntamisen.
  • Normalisointi-, kaksisuuntaisuus- ja UCD-ominaisuudet varmistavat yhdenmukaisen vertailun, järjestyksen ja renderöinnin.
  • Unicoden (mieluiten UTF-8 verkossa) käyttöönotto estää korruptiota ja helpottaa kansainvälistymistä.

Yleinen kuva Unicodesta

Unicode on tietokoneiden käyttämä yleinen kieli tekstin käsittelyssä : se antaa jokaiselle merkille ja symbolille yksilöllisen numeron lähes mistä tahansa kirjoitusjärjestelmästä, jotta ne voidaan tallentaa, käsitellä ja jakaa saumattomasti alustojen ja maiden välillä.

Tämä standardi syntyi voittamaan vanhojen merkistöjen ( ASCII-merkistö , koodisivut, EBCDIC jne.) rajoitukset, jotka olivat riittämättömiä tai yhteensopimattomia keskenään. Nykyään se on synkronoitu ISO/IEC 10646 -standardin kanssa, ylläpitää algoritmeja (kuten kaksisuuntaista) ja määrittelee ominaisuudet ja normalisointisäännöt, jotta kaikki toimii johdonmukaisesti.

Mikä on Unicode ja miksi se on niin tärkeä?

Unicode on yleismaailmallinen ja jatkuvasti kehittyvä merkistökoodausstandardi , joka kuvaa jokaisen merkin nimellä, koodipisteellä ja joukolla ominaisuuksia (kirjoitusasu, luokka, suunta, kirjainkoko jne.). Unicode-konsortion Unicode Technical Committee (UTC) pitää sen synkronoituna ISO/IEC 10646 -standardin kanssa.

Sen tavoitteena on universaalisuus, yhdenmukaisuus ja ainutlaatuisuus : laaja repertuaari, joka mahdollistaa monikielisen tekstin yksiselitteisen vaihdon selkeiden ja toistettavien sääntöjen mukaisesti. Tämän ansiosta modernit teknologiat (käyttöjärjestelmät, selaimet, XML, Java, tietokannat) voivat yhdistää latinalaisia ​​ja arabialaisia ​​merkkejä, CJK-ideogrammeja, emojeja sekä teknisiä tai musiikillisia symboleja samassa asiakirjassa.

Merkit, symbolit ja koodipisteet

Unicode-merkistössä merkki on abstrakti tiedon yksikkö ja koodipiste on sen numeerinen tunniste . Symboli on visuaalinen muoto (se, mitä näet näytöllä), joka riippuu fontista . Yhdellä merkillä voi olla useita symboleja, ja joskus yksi symboli edustaa useampaa kuin yhtä merkkiä.

Tavanomainen koodipisteen merkintätapa on heksadesimaalimuodossa U+XXXX . Havainnollistavia esimerkkejä analysoidusta aineistosta: pieni 'l' on U+006C, valmiiksi muodostettu pieni 'ü' on U+00FC, 'é' on U+00E9 ja kreikkalainen beta: iso kirjain on U+0392 ja pieni U+03B2 (joissakin teksteissä 'β' on mainittu yhdessä U+0392:n kanssa, mutta kyseinen koodi vastaa isoa kirjainta 'Β').

Unicode-koodiavaruudessa on 1 114 112 mahdollista merkkijonoa (jopa U+10FFFF:iin asti) , jotka on järjestetty kattamaan ja luokittelemaan kaikki kirjoitusjärjestelmät ja symbolit, ja jokaisessa versiossa on kymmeniätuhansia tehokkaita ja kasvavia sijainteja.

Pohjapiirrokset, alueet ja korttelit

Unicode jakaa merkkiavaruutensa 17 tasoon, joissa kussakin on jopa 65 536 koodipistettä . Tämä järjestely helpottaa toisiinsa liittyvien komentosarjojen ja symbolien ryhmittelyä ja helpottaa etsimäsi löytämistä.

Olennaisimmat tasot : perusmonikielinen taso (BMP, taso 0) yhdistää lähes kaikki nykyaikaiset aakkoset ja monia symboleja; täydentävä monikielinen taso (SMP, taso 1) tallentaa historiallisia kirjoitusjärjestelmiä ja teknisiä symboleja (esim. musiikillisia ja matemaattisia); täydentävä ideografinen taso (SIP, taso 2) laajentaa CJK-ideogrammeja; taso 14 (SSP) sisältää erityistunnisteita; ja tasot 15 ja 16 on tarkoitettu yksityiskäyttöön.

Lohkot ja alueet : kartat on epävirallisesti jaettu alueisiin ja muodollisesti yhtenäisiin lohkoihin. Lohkoja käytetään merkkien taulukointiin ja dokumentointiin, vaikka ne eivät aina vastaakaan merkityksellisiä kielellisiä ryhmittelyjä.

  Tech Plaza: Uusi Mekka yrittäjille ja visionäärille

CJK-ideogrammit ja Unihan-projekti

Itäaasialaiset (han) ideogrammit on yhtenäistetty Unicodessa, ja niissä on alueellisia tyylillisiä vaihteluita , mutta ne kaikki viittaavat samaan abstraktiin merkkiin. Niiden hallinnasta vastaa Ideographic Rapporter Group (IRG), ISO/IEC JTC1/SC2/WG2 -ryhmä, jossa on edustus Kiinasta, Japanista, Koreasta, Vietnamista, Hongkongista, Macaosta, Singaporesta, Yhdysvalloista ja muista maista.

Unihan-tietokanta kokoaa yhteen lisätiedot (lukemat, merkitykset, vastaavuudet), jotka ovat olennaisia ​​näiden ideogrammien käsittelyssä eri kielillä ja historiallisilla tai yritysstandardeilla.

Tärkeimmät CJK-lohkot ja laajennukset :

  • CJK:n yhtenäiset ideografit (BMP, U+4E00–U+9FFF)20.992 XNUMX yleisesti käytettyä merkkiä.
  • Laajennus A (BMP, U+3400–U+4DBF)6.592 XNUMX harvemmin esiintyvää ideogrammia.
  • B–H-laajennukset: SMP/SIP/TIP-kielissä ne ovat yhteensä kymmeniä tuhansia enemmän (B: U+20000–U+2A6DF, 42.720 2; C: U+700A2–U+73B4.154F, 2 740; D: U+2B81–U+222B2F, 820; E: U+2B5.762–U+2CEAF, 0 2; F: U+7.473CEB30000–U+3134EBEF, 4.939 31350; G: U+323–U+4.192F, XNUMX XNUMX;
  • Muut aiheeseen liittyvät CJK-lohkotKangxi-radikaalit (U+2F00–U+2FDF), CJK-symbolit ja -välimerkit (U+3000–U+303F), Yhteensopivuus ja yhteensopivuusmuodot, Yhteensopivuusideogrammin lisäosa jne.

Unicode ennakoi, että ideogrammien lisäämisellä ei ole ehdotonta loppua , ja harkitsee mekanismeja, kuten ideografisia kuvaussarjoja, koodaamattomien symbolien esittämiseksi jakamalla ne olemassa oleviin osiin (varoituksin: ilman kanonista hajottamista tai takeita toiminnoissa, kuten haussa tai järjestämisessä).

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

Unicode määrittelee muunnoslomakkeita (UTF), jotka muuntavat koodipisteet tallennusyksiköiksi, jotta ohjelmistot voivat tehokkaasti käsitellä tekstiä kontekstinsa mukaan.

UTF-8 on vaihtelevan pituinen, tavupohjainen koodausmuoto, joka on ASCII-yhteensopiva merkkijonojen U+0000–U+007F välillä yhdessä tavussa. Nykyinen standardi käyttää 1–4 tavua merkkiä kohden; joissakin vanhemmissa teksteissä mainitaan 1–6, mutta nykyaikaisessa Unicodessa se on 1–4. Se on hallitseva muoto verkossa.

UTF-16 käyttää 16-bittisiä yksiköitä

(yksi tai kaksi koodiyksikköä merkkiä kohden) : useimmat BMP-merkit mahtuvat yhteen yksikköön; täydentävät merkit käyttävät sijaispareja välillä U+D800–U+DFFF.

UTF-32 on kiinteän pituinen: 4 tavua merkkiä kohden, yksinkertainen mutta tilaa vievä; hyödyllinen, kun suora merkkien indeksointi on tärkeää eikä muisti ole ongelma.

Bittien jakaminen UTF-8-koodistossa

UTF-8-muoto jakaa koodipistebitit 1–4 tavun pituisiin sarjoihin , joilla on tunnistettavat otsikot, mikä välttää epäselvyyksiä ja helpottaa merkkirajojen havaitsemista.

Unicode-alue Bittikuvio Tavua
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:n keskeinen etu on, että se välttää tavujärjestyksen (endianness) ongelmat ja mahdollistaa tekstivirtojen erittäin tehokkaan käsittelyn sekä on taaksepäin yhteensopiva ASCII:n kanssa.

Koodausjärjestelmät, endianiteetti ja BOM

UTF-lomakkeiden lisäksi Unicode kuvaa sarjoittelujärjestelmiä , jotka ratkaisevat, miten tavuja siirretään eri päätteiden omaavien järjestelmien välillä ja miten esimerkiksi tavujärjestys signaloidaan.

  • UTF-8: endianisuus ei päde. Sitä voidaan kuljettaa Tavujärjestysmerkki (BOM) vihjeenä, vaikka sitä ei oletusarvoisesti vaadita tai suositella.
  • UTF-16BE/LE (big/little-endian) -variantit ja valinnainen BOM (jos puuttuu eikä sitä ole määritelty protokollassa, oletetaan big-endian).
  • UTF-32BE/LE-muunnelmat vastaavilla säännöillä; BOM sallittu tilausmerkinnällä.
  LinkedIn: Olennainen alusta ammattilaisille

On myös olemassa tiettyjä variantteja , kuten UTF-16BE/UTF-16LE ja UTF-32BE/UTF-32LE (ilman BOM:ia sopimuksen mukaan), ja muita historiallisia yhteensopivuuskoodauksia, kuten UTF-7 tai UTF-EBCDIC, GB18030:n (kiinankielinen vastine UTF-8:lle, joka tukee yksinkertaistettua ja perinteistä kiinaa) lisäksi.

Normalisointi, koostumus ja ekvivalenssit

Monet merkit voidaan esittää valmiiksi muodostettuina tai sarjana, jossa on kantalukua + yhdistäviä merkkejä . Klassisia esimerkkejä tarkistetusta materiaalista: valmiiksi muodostettu 'Ä' on U+00C4, kun taas dekomponoitu muoto on 'A' (U+0041) + diaereesi (U+0308). Vietnamilainen 'ỗ' voidaan esittää muodossa 'o' (U+006F) + sirkumfleksi (U+0302) + tilde (U+0303).

Unicode määrittelee standardoidut muodot ja kaksi ekvivalenssityyppiä : kanonisen (sama olennainen sisältö) ja yhteensopivuuden (muodot, jotka saattavat näyttää samalta, mutta joilla on semanttisia eroja). Standardointi varmistaa merkkijonojen luotettavan vertailun ja vähentää päällekkäisyyksiä.

Kaksisuuntainen algoritmi ja erikoismerkit

Oikealta vasemmalle kirjoitetuille merkeille, kuten arabialle tai heprealle, Unicode sisältää standardoidun ja kehittyvän kaksisuuntaisen algoritmin (Bidi) (esim. versiossa 6.3), jotta latinaa ja arabiaa sisältävät sekatekstit esitetään oikeassa visuaalisessa järjestyksessä.

Vastaanotetun materiaalin mukaan tiedossa olevat koodipisteluokat : graafiset merkit (kirjaimet, merkit, symbolit), muotoilu (näkymättömät merkit, jotka vaikuttavat käsittelyyn: U+2028 rivinvaihto, U+2029 kappaleenvaihto, U+00A0 välilyönti), perityt yhteensopivuuden ohjauskoodit (alueet U+0000–U+001F, U+007F, U+0080–U+009F), yksityinen käyttö, varatut paikat, korvaavat merkit (U+D800–U+DFFF UTF-16:lle) ja ei-merkit (U+FFFE, U+FFFF kussakin tasossa).

Unicode, ISO/IEC 10646 ja muut standardit (ASCII, ANSI, koodisivut)

Unicode on synkronoitu ISO/IEC 10646 (UCS) -standardin kanssa ja säilyttää vastaavuudet aiempiin standardeihin (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643 jne.) sekä varaa tilaa valmistajien yksityiskäyttöön.

ASCII vs. Unicode : ASCII on 7-bittinen merkistö , jossa on 128 merkkiä. Se riittää perusenglannille, mutta ei riitä kielille, joissa on diakriittisiä merkkejä, ideogrammeja tai emojeja . Unicode kattaa yli 140 000 merkkiä ja kasvaa jatkuvasti 8/16/32-bittisellä koodauksella UTF-12-muodon mukaisesti.

ANSI ja koodisivut : 'ANSI' viittaa yleensä rajoitettuihin ja keskenään yhteensopimattomiin 8-bittisiin Windows-koodisivuihin. Tietokone, jossa on OEM-Latin II -merkkijono ja joka avaa tekstin IBM EBCDIC-kyrillisellä merkistöllä, näkee virheellisiä merkkejä. Unicode ratkaisee tämän ongelman käyttämällä yhtä merkistöä ja häviöttömiä muunnoksia omien muotojensa välillä.

Käyttöönotto järjestelmissä (Windows, Solaris) ja muuntaminen

Windows käyttää sisäisesti UTF-16-koodausta moderneissa API-rajapinnoissaan ja tarjoaa ominaisuuksia, kuten MultiByteToWideChar ja WideCharToMultiByte, Unicode-koodisivujen ja koodisivujen (SBCS/DBCS/MBCS) välisiin muunnoksiin. Jos joudut muuttamaan koodisivulle, tietoja voi kadota, jos se ei pysty esittämään kaikkia merkkejä.

Uusien Windows-sovellusten tulisi käyttää sisäisesti UTF-16-koodausta ja jättää muunnos reunoille (I/O, protokollat) korruption minimoimiseksi. Tästä huolimatta Windows säilyttää yhteensopivuuden koodisivujen kanssa silloin, kun se on välttämätöntä.

Tarkistetun dokumentaation mukaan Oracle Solaris 11 tukee Unicode 6.0:aa ja ISO/IEC 10646:2011 -standardia järjestelmätasolla käyttäen UTF-8:aa oletusmuotona parametrijoukoissaan, mikä säästää tavujärjestysongelmia ja säilyttää ASCII:n läpinäkyvästi.

Unicode käytännössä: Verkko, dokumentit ja ohjelmointi

Verkossa on yleistä tarjota ja tallentaa sisältöä UTF-8-merkistössä . HTML:ssä määritä '<meta charset="UTF-8">' yhteensopivuuden varmistamiseksi ja käytä tarvittaessa heksanumeroyksiköitä (esimerkiksi euro '&#').

  14 mielenkiintoista faktaa Pythonista, joita et tiennyt

Wordissa voit helposti lisätä Unicode-symboleja asettamalla kohdistimen, valitsemalla Lisää > Symboli tai kirjoittamalla koodin ja painamalla Alt+X. Tämä muuntaa arvon merkiksi vakiomenettelyjen mukaisesti. Katso myös luettelo Alt-koodeista symbolien lisäämiseen näppäimistöltä.

Ohjelmointikielissä : Python 3:ssa merkkijonot ovat jo Unicode-muodossa; Javassa ja C#:ssa voit käyttää ohjausmerkkejä '\uXXXX'; HTML:ssä '&#xXXXX;'. Tärkeää on, että muokkaaminen, kääntäminen ja lähettäminen käyttävät samaa koodausta virheiden välttämiseksi.

Symbolien kopioiminen ja liittäminen toimii, jos koko merkkijono on Unicode-muodossa . Jos osat siitä käyttävät eri koodausta, saattaa näkyä kysymysmerkkejä, neliöitä tai muita outoja symboleja.

Merkkitietokanta (UCD), ominaisuudet ja kategoriat

Unicode-merkkitietokanta (UCD) julkaisee jokaiselle koodipisteelle sen nimen, luokan, skriptin, kirjainkoon ominaisuudet, suunnan ja muita ominaisuuksia . Nämä tiedot ovat elintärkeitä, jotta renderöintimoottorit ja tekstinkäsittely toimivat oikein.

Näiden ominaisuuksien ansiosta eri komponentit ja algoritmit (kuten lajittelu, sanojen segmentointi tai isojen/pienten kirjainten muunnos) voivat käyttäytyä johdonmukaisesti saman datan kanssa.

Standardin versiot ja laajennukset: kohokohdat

Unicode kasvaa jokaisen version myötä lisäämällä uusia kirjoitusasuja, symboleja ja emojeja. Tärkeimpiä virstanpylväitä ovat versio 1.0 vuonna 1991, jossa oli 7 161 merkkiä, sekä sitä seuranneet laajennukset, jotka ovat lisänneet tuhansia uusia symboleja, ideogrammeja, emojeja ja kirjoitusasuja.

Esimerkiksi vuonna 2022 versioon 15.0 lisättiin 4 192 uutta CJK-ideogrammia ja muuta elementtiä, jolloin merkkien määrä nousi noin 149 186 merkkiin.

Työkaluja Unicode-taulukon tutkimiseen

Merkkien etsimiseen ja analysointiin on olemassa ilmaisia ​​apuohjelmia : Unibook Character Browser, SYMBL ja Branah.com mahdollistavat ominaisuuksien, nimien ja merkkilohkojen kyselyn, mikä helpottaa kehittäjien ja sisällöntuottajien tarvitsemien tietojen nopeaa löytämistä.

Käyttötapaukset: osoitelomakkeet, kansainvälistyminen ja liiketoiminta

Käyttäjien salliminen syöttää osoitteita omalla kielellään ja merkistollaan auttaa vähentämään virheitä ja parantamaan käyttökokemusta. Lisäksi Unicode-yhteensopivuus estää muunnosongelmia eri järjestelmien välillä ja säilyttää tekstin eheyden koko digitaalisessa ketjussa.

Tästä syystä Unicode on perustavanlaatuinen elementti, joka varmistaa tekstin lopullisen säilymisen koko digitaalisessa infrastruktuurissa , verkkolomakkeista tietokantajärjestelmiin ja painettuihin asiakirjoihin, riippumatta siitä, käytätkö samassa lauseessa 'ñ'-merkkiä, arabiaa, kiinaa tai emojeja.

Binäärinumerointi
Aiheeseen liittyvä artikkeli:
Binäärinumerointi: Tietokoneiden salainen kieli