Hva er Unicode: Komplett guide, bruksområder og kodinger

Siste oppdatering: 20 august 2025
Forfatter: TecnoDigital
  • Unicode tilordner et unikt kodepunkt til hvert tegn og synkroniserer repertoaret med ISO/IEC 10646.
  • UTF-8, UTF-16 og UTF-32 koder de samme tegnene og tillater konvertering uten tap.
  • Normaliserings-, Bidi- og UCD-egenskaper sikrer konsistent sammenligning, rekkefølge og gjengivelse.
  • Å ta i bruk Unicode (helst UTF-8 på nettet) forhindrer korrupsjon og forenkler internasjonalisering.

Generisk illustrasjon om Unicode

Unicode er det vanlige språket datamaskiner bruker når de håndterer tekst : det tildeler et unikt nummer til hvert tegn og symbol, fra nesten alle skrivesystemer, slik at det kan lagres, behandles og deles sømløst mellom plattformer og land.

Denne standarden oppsto for å overvinne begrensningene til gamle tegnsett ( ASCII-settet , kodesider, EBCDIC osv.), som ikke var kompatible med hverandre eller var kompatible med hverandre. I dag er den synkronisert med ISO/IEC 10646, vedlikeholder algoritmer (som den toveis) og definerer egenskaper og normaliseringsregler slik at alt fungerer konsistent.

Hva er Unicode, og hvorfor er det så viktig?

Unicode er en universell og stadig utviklende standard for tegnkoding som beskriver hvert tegn med et navn, et kodepunkt og et sett med egenskaper (skript, kategori, retningsbestemmelse, store og små bokstaver osv.). Unicode Technical Committee (UTC), innenfor Unicode Consortium, holder den synkronisert med ISO/IEC 10646-standarden.

Målet er universalitet, ensartethet og unikhet : et bredt repertoar som muliggjør entydig utveksling av flerspråklig tekst, med klare og reproduserbare regler. Takket være dette kan moderne teknologier (operativsystemer, nettlesere, XML, Java, databaser) blande latinske og arabiske skrifttyper, CJK-ideogrammer, emojier og tekniske eller musikalske symboler i samme dokument.

Tegn, tegn og kodepunkter

I Unicode er et tegn en abstrakt informasjonsenhet, og et kodepunkt er dens numeriske identifikator . En glyf er den visuelle formen (det du ser på skjermen), som avhenger av skrifttypen . Et enkelt tegn kan ha flere glyfer, og noen ganger representerer en glyf mer enn ett tegn.

Den vanlige notasjonen for et kodepunkt er U+XXXX i heksadesimal form . Illustrative eksempler fra det analyserte materialet: den lille bokstaven 'l' er U+006C, den forhåndskomponerte lille bokstaven 'ü' er U+00FC, 'é' er U+00E9 og den greske beta: store bokstaver er U+0392 og små bokstaver U+03B2 (i noen tekster er 'β' sitert sammen med U+0392, men den koden tilsvarer store bokstaver 'Β').

Unicode-koderommet har 1 114 112 mulige posisjoner (opptil U+10FFFF) , organisert for å dekke og klassifisere alle skriftsystemer og symboler, med titusenvis av effektive og voksende tildelinger i hver versjon.

Planer, områder og blokker

Unicode deler tegnområdet sitt inn i 17 plan med opptil 65 536 kodepunkter hver . Denne organiseringen gjør det enkelt å gruppere relaterte skript og symboler og raskt finne det du leter etter.

De mest relevante planene : Basic Multilingual Plane (BMP, plan 0) samler nesten alle moderne alfabeter og mange symboler; Supplementary Multilingual Plane (SMP, plan 1) lagrer historiske skrifttyper og tekniske symboler (f.eks. musikalske og matematiske); Supplementary Ideographic Plane (SIP, plan 2) utvider CJK-ideogrammene; plan 14 (SSP) inkluderer spesielle etiketter; og plan 15 og 16 er til privat bruk.

Blokker og områder : Kartene er uformelt delt inn i områder og formelt i sammenhengende blokker. Blokker brukes til å tabulere og dokumentere tegn, selv om de ikke alltid samsvarer med meningsfulle språklige grupperinger.

  Master i miljøledelse: programmer og krav

CJK-ideogrammer og Unihan-prosjektet

Østasiatiske (Han) ideogrammer er samlet i Unicode med stilistiske variasjoner etter region , men alle refererer til det samme abstrakte tegnet. Administrasjonen av dem håndteres av Ideographic Rapporteur Group (IRG), en ISO/IEC JTC1/SC2/WG2-gruppe med representasjon fra Kina, Japan, Korea, Vietnam, Hong Kong, Macau, Singapore, USA og andre.

Unihan-databasen samler tilleggsinformasjon (lesninger, betydninger, ekvivalenser) som er viktig for å håndtere disse ideogrammene på forskjellige språk og historiske eller bedriftsstandarder.

Hoved CJK-blokker og -utvidelser :

  • CJK Unified Ideographs (BMP, U+4E00–U+9FFF)20.992 XNUMX vanlige tegn.
  • Utvidelse A (BMP, U+3400–U+4DBF)6.592 XNUMX sjeldnere ideogrammer.
  • B–H-utvidelserI SMP/SIP/TIP blir de flere titusenvis (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;
  • Andre relaterte CJK-blokkerKangxi-radikaler (U+2F00–U+2FDF), CJK-symboler og tegnsetting (U+3000–U+303F), kompatibilitet og kompatibilitetsformater, tillegg til kompatibilitetsideogrammer, osv.

Unicode forventer at innlemmelsen av ideogrammer ikke vil ha en absolutt slutt , og vurderer mekanismer som ideografiske beskrivelsessekvenser for å representere ukodede symboler ved å bryte dem ned til eksisterende komponenter (med forholdsregler: uten kanonisk dekomponering eller garantier i operasjoner som søking eller rekkefølge).

Kodeformer: UTF-8, UTF-16 og UTF-32

Unicode definerer transformasjonsformer (UTF) som konverterer kodepunkter til lagringsenheter, slik at programvare effektivt kan behandle tekst i henhold til konteksten.

UTF-8 er et byteorientert kodeformat med variabel lengde som er ASCII-kompatibelt i området U+0000–U+007F i en enkelt byte. Den nåværende standarden bruker 1 til 4 byte per tegn; noen eldre tekster nevner 1–6, men i moderne Unicode er det 1–4. Det er det dominerende formatet på nettet.

UTF-16 bruker 16-bits enheter

(én eller to kodeenheter per tegn) : de fleste BMP-tegn passer inn i én enhet; tilleggstegn bruker surrogatpar i området U+D800–U+DFFF.

UTF-32 har fast lengde: 4 byte per tegn, enkelt, men plasskrevende; nyttig når direkte tegnindeksering er viktig og minne ikke er et problem.

Hvordan biter distribueres i UTF-8

UTF-8-formatet fordeler kodepunktbitene i sekvenser på 1 til 4 byte med gjenkjennelige overskrifter, noe som unngår tvetydigheter og forenkler deteksjonen av tegngrenser.

Unicode-område Bitmønster Bytes
U+0000..U+007F 0xxxxxxx 1
U+0080..U+07FF 110ååååå 10xxxxxx 2
U+0800..U+FFFF 1110zzzz 10yyyyyy 10xxxxxx 3
U+010000..U+10FFFF 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx 4

En viktig fordel med UTF-8 er at den unngår problemer med byterekkefølge (endianness) og muliggjør svært effektiv behandling av tekststrømmer, i tillegg til å være bakoverkompatibel med ASCII.

Kodingsskjemaer, endianness og BOM

I tillegg til UTF-former beskriver Unicode serialiseringsskjemaer som løser hvordan byte overføres mellom systemer med ulik endianness og hvordan aspekter som byterekkefølge signaliseres.

  • UTF-8: endianhet gjelder ikke. Det kan være Byterekkefølgemerke (BOM) som et hint, selv om det ikke er obligatorisk eller anbefalt som standard.
  • UTF-16BE/LE (big/little-endian)-varianter og valgfri BOM (hvis manglende og ikke definert av protokollen, antas big-endian).
  • UTF-32BE/LE-varianter med analoge regler; BOM tillatt som ordremerke.
  Hva brukes fiberoptikk til?

Det finnes også spesifikke varianter som UTF-16BE/UTF-16LE og UTF-32BE/UTF-32LE (uten BOM per konvensjon), og andre historiske kompatibilitetskodinger som UTF-7 eller UTF-EBCDIC, i tillegg til GB18030 (kinesisk tilsvarende UTF-8 med støtte for forenklet og tradisjonell kinesisk).

Normalisering, sammensetning og ekvivalenser

Mange tegn kan representeres som forhåndskomponerte eller som sekvenser av basis- + kombinasjonstegn . Klassiske eksempler fra det reviderte materialet: den forhåndskomponerte 'Ä' er U+00C4, mens den dekomponerte formen er 'A' (U+0041) + trema (U+0308). Den vietnamesiske 'ỗ' kan representeres som 'o' (U+006F) + cirkumfleks (U+0302) + tilde (U+0303).

Unicode definerer standardiserte former og to typer ekvivalens : kanonisk (samme essensielle innhold) og kompatibilitet (former som kan virke like, men har semantiske forskjeller). Standardisering sikrer pålitelig strengsammenligning og reduserer duplisering.

Toveisalgoritme og spesialtegn

For høyre-mot-venstre-skrift, som arabisk eller hebraisk, bruker Unicode en standardisert og utviklende toveisalgoritme (Bidi) (f.eks. revisjoner i 6.3), slik at blandede tekster med latin og arabisk er representert i riktig visuell rekkefølge.

Klasser av kodepunkter som bør være kjent i henhold til det mottatte materialet: grafiske tegn (bokstaver, tegn, symboler), formatering (usynlige tegn som påvirker behandlingen: U+2028 linjeskift, U+2029 avsnittskift, U+00A0 mellomrom), arvede kontrollkoder for kompatibilitet (områdene U+0000–U+001F, U+007F, U+0080–U+009F), privat bruk, reserverte posisjoner, erstatninger (U+D800–U+DFFF for UTF-16) og ikke-tegn (U+FFFE, U+FFFF i hvert plan).

Unicode, ISO/IEC 10646 og andre standarder (ASCII, ANSI, kodesider)

Unicode er synkronisert med ISO/IEC 10646 (UCS) og beholder tilordninger til tidligere standarder (ASCII, ISO 8859-1, ANSI Z39.64, JIS X 0208, KS X 1001, GB 2312, GB 18030, HKSCS, CNS 11643, osv.), i tillegg til å reservere plasser for privat bruk av produsenter.

ASCII vs. Unicode : ASCII er et 7-bits tegnsett med 128 tegn , tilstrekkelig for grunnleggende engelsk, men utilstrekkelig for språk med diakritiske tegn, ideogrammer eller emojier . Unicode dekker mer enn 140 000 tegn og fortsetter å vokse, med 8/16/32-bits koding i henhold til UTF-12-formatet.

ANSI og kodesider : «ANSI» refererer vanligvis til begrensede og gjensidig inkompatible 8-bits Windows-kodesider. En datamaskin som kjører OEM-Latin II og åpner tekst i IBM EBCDIC-Cyrillic, vil se feil tegn. Unicode løser dette problemet med et enkelt tegnsett og tapsfri konvertering mellom sine egne former.

Implementering på systemer (Windows, Solaris) og konvertering

Windows bruker internt UTF-16 for sine moderne API-er og tilbyr funksjoner som MultiByteToWideChar og WideCharToMultiByte for konvertering mellom Unicode og kodesett (SBCS/DBCS/MBCS). Hvis du blir tvunget til å konvertere til et kodesett, kan det oppstå datatap hvis det ikke kan representere alle tegnene.

Nye applikasjoner på Windows bør bruke UTF-16 internt og overlate konverteringen til kantene (I/O, protokoller), for å minimere korrupsjon. Likevel opprettholder Windows kompatibilitet med kodesider når det er uunngåelig.

I følge den reviderte dokumentasjonen støtter Oracle Solaris 11 Unicode 6.0 og ISO/IEC 10646:2011 på systemnivå, og bruker UTF-8 som standardformat i parametersettene, noe som sparer problemer med byte-rekkefølge og bevarer ASCII på en transparent måte.

Unicode i praksis: Nett, dokumenter og programmering

På nettet er det vanlig å servere og lagre innhold i UTF-8 . I HTML, deklarer '<meta charset="UTF-8">' for å sikre kompatibilitet, og bruk heksadesimale numeriske enheter når det er nødvendig (eksempel: euroen '&#x20AC;').

  Pålitelige informasjonskilder i den digitale tidsalderen

I Word kan du enkelt sette inn Unicode-symboler ved å plassere markøren, gå til Sett inn > Symbol, eller ved å skrive inn koden og trykke Alt+X. Dette konverterer verdien til tegnet ved å følge standardprosedyrer. Se også listen over Alt-koder for å sette inn symboler fra tastaturet.

I programmeringsspråk : i Python 3 er strenger allerede Unicode; i Java og C# kan du bruke escape-tegn '\uXXXX'; i HTML, '&#xXXXX;'. Det viktigste er at redigering, kompilering og overføring bruker samme koding for å unngå feil.

Kopiering og liming av symboler fungerer hvis hele strengen er i Unicode . Hvis deler av den bruker en annen koding, kan spørsmålstegn, firkanter eller andre merkelige symboler dukke opp.

Tegndatabase (UCD), egenskaper og kategorier

Unicode-tegndatabasen (UCD) publiserer for hvert kodepunkt navn, kategori, skript, egenskaper for store og små bokstaver, retningsbestemmelse og andre egenskaper . Denne informasjonen er viktig for at gjengivelsesmotorer og tekstbehandling skal fungere riktig.

Takket være disse egenskapene kan forskjellige komponenter og algoritmer (som sortering, ordsegmentering eller transformasjon av store/små bokstaver) oppføre seg konsistent med de samme dataene.

Versjoner og utvidelser av standarden: høydepunkter

Unicode vokser med hver versjon , og inkluderer nye skrifttyper, symboler og emojier. Viktige milepæler inkluderer versjon 1.0 i 1991 med 7.161 tegn, og påfølgende utvidelser som har lagt til tusenvis av nye symboler, ideogrammer, emojier og skrifttyper.

For eksempel, i 2022 la versjon 15.0 til 4.192 ekstra CJK-ideogrammer og andre elementer, og nådde omtrent 149 186 tegn.

Verktøy for å utforske Unicode-tabellen

Det finnes gratis verktøy for å søke etter og analysere tegn : Unibook Character Browser, SYMBL og Branah.com lar deg spørre om egenskaper, navn og tegnblokker, noe som gjør det enklere for utviklere og innholdsskapere å raskt finne informasjonen de trenger.

Bruksområder: adresseskjemaer, internasjonalisering og forretningsdrift

Å la brukere legge inn adresser på sitt eget språk og skrift bidrar til å redusere feil og forbedre brukeropplevelsen. I tillegg forhindrer Unicode-interoperabilitet konverteringsproblemer mellom ulike systemer, og opprettholder tekstintegriteten gjennom hele den digitale kjeden.

Av denne grunn er Unicode det grunnleggende elementet som sikrer at teksten forblir endelig i hele den digitale infrastrukturen , fra nettskjemaer til databasesystemer og trykte dokumenter, uavhengig av om du bruker 'ñ', arabisk, kinesisk eller emojier i samme setning.

Binær nummerering
Relatert artikkel:
Binær nummerering: Det hemmelige språket til datamaskiner