close

ISO/IEC10646

Gå til navigation Gå til søg

Den internationale standard ISO / IEC 10646 definerer Universal Character Set ( UCS ) som et multi - oktet tegnkodningssystem . Den seneste version indeholder omkring 136.000 abstrakte tegn , hver præcist identificeret af et heltal kaldet et kodepunkt. ISO/IEC 10646-standarden vedligeholdes sammen med Unicode ("Unicode")-standarden, som begge er identiske i kode. Det blev oprettet i år 1993, derfor kaldes det nogle gange også ISO/IEC 10646-1:1993.

I dette sæt er de forskellige tegn (bogstaver, tal, symboler, ideogrammer, logogrammer osv.) fra mange sprog , alfabeter osv... såvel som fra de forskellige eksisterende tegnsætningstraditioner på alle verdens sprog ., repræsenteret i UCS med de eneste kodepunkter. Inkluderingen af ​​nye karakterer er konstant, hvilket gør sættet permanent i en tilstand af opdatering.

Siden 1991 har Unicode-konsortiet arbejdet sammen med ISO-organet om i fællesskab at udvikle Unicode-standarden og ISO/IEC 10646. Repertoiret, karakternavne og kodepunkter i Unicode version 2.0 passer tæt sammen med de første syv udgivelser af ISO/IEC 10646-1:1993. Efter udgivelsen af ​​Unicode 3.0 i februar 2000 blev nye tegn introduceret til UCS via ISO/IEC 10646-1:2000.

UCS-sættet har omkring 1,1 millioner kodepunkter, men kun de første 65.536 ( Unicode Character Association eller BMP) var taget i brug før år 2000. Denne situation begyndte at ændre sig, da Folkerepublikken Kina (PRC) ) anmodede i i år 2000, hvor de edb-systemer, der blev solgt på dets område, skulle understøtte GB18030 , betød denne situation, at de systemer, der skulle sælges i RPC'en, skulle gå ud over BMP. Sættet som defineret i dag har bevidst efterladt nogle huller for i fremtiden at kunne inkorporere andre karakterer, der ikke er i konflikt med de nuværende.

Måder at kode det universelle tegnsæt på

ISO 10646 definerer forskellige "kodningsformer" af tegn for det universelle tegnsæt . Den enkleste kaldes UCS-2, som bruger en enkelt "kodeværdi" (defineret som et eller flere tal, der repræsenterer et kodepunkt) mellem 0 og 65.535 for hvert tegn, og tillader præcis to bytes (et ord på 16 - bit ) til at repræsentere værdien. UCS-2 tillader derfor en binær repræsentation af hvert kodepunkt i BMP-systemet, hvilket gør der en en-til-en overensstemmelse mellem værdien og kodepunktet, der repræsenterer tegnet. UCS-2 kan ikke repræsentere kodepunkter uden for BMP-sættet.

Den første ændring af den originale udgave af UCS blev defineret som UTF-16 og var en udvidelse af UCS-2 til at repræsentere kodepunkter uden for BMP. Der er i øjeblikket et særligt område med kodepunkter kaldet S (Special) i BMP, som forbliver utildelt til tegn. UCS-2 tillader ikke, at kodeværdier bruges til disse kodepunkter, men UTF-16 tillader, at de bruges i par. Hvert par består af et "RC-element" (en tuple af to oktetter, der danner en R-oktet og en C-oktet af en samlet sekvens på fire oktetter, der er forbundet med en celle i tegnkoderummet). Unicode-standarden har også vedtaget UTF-16, men i Unicode-terminologi kaldes den øverste halvdel af elementzonen "høje substitutioner", og den nederste halvdel af tabellen kaldes "lave substitutioner".

En anden kodning er UCS-4 , som bruger et enkelt tegn mellem 0 og (teoretisk) i hexadecimal op til 7FFFFFFF, der skal tildeles til hvert tegn (UCS stopper dog ved 10FFFF og ISO/IEC 10646 har begået fremtidige tegntildelinger i denne kodning). ). UCS-4 tillader repræsentationer af hver værdi ved hjælp af præcis fire bytes (et 32-bit ord). UCS-4 giver mulighed for en binær repræsentation af hvert kodepunkt i UCS-systemet, inklusive dem uden for BMP. Som i UCS-2-kodningssystemet har hvert kodet tegn en fast længde i bytes.

Historien om ISO 10646

Den Internationale Standardiseringsorganisation (ISO) specificerede karaktersættet i 1989 og udgav et udkast kaldet ISO 10646 i 1990. Hugh McGregor Ross var en af ​​hovedskaberne og arkitekterne bag dette første udkast. Den standard er meget anderledes end den nuværende. I det første udkast blev 128 grupper af 256 fly defineret, og hver af dem havde 256 kolonner og 256 celler, med dette var det tilsyneladende muligt at placere 2.147.483.648 tegn, men i øjeblikket kan standarden kun placere 679.477.248 tegn, såsom reglerne forbyder kontrol tegnværdier (0x00 til 0x1F og 0x80 til 0x9F, i hexadecimal notation ). For eksempel har bogstavet A en position i gruppe 0x20, plan 0x20, kolonne 0x20, celle 0x41.

Tegn fra denne overordnede ISO 10646-standard kan krypteres på en af ​​tre måder:

  1. UCS-4, fire oktetter for hvert tegn, hvilket muliggør enkel indkodning af alle tegn;
  2. UCS-2, to oktetter for hvert tegn, som tillader kodning af det første plan, 0x20, det grundlæggende flersprogede plan, der indeholder de første 36.864 kodepunkter, direkte og andre planer og grupper, der skifter til dem med ISO 2022 -escape-sekvenser;
  3. UTF-1 , som koder alle tegn i sekvenser af oktetter af varierende længde (1 til 5 oktetter, uden kontroltegn).

I 1990 kom to initiativer frem for at skabe et universelt tegnsæt: Unicode , med 16 bit for hvert tegn (65.536 mulige tegn) og ISO 10646. Softwarevirksomheder nægtede at acceptere kravet om kompleksitet og tegnstørrelse. ISO-standard og administreret at overbevise en række nationale ISO-organer til at stemme imod. ISO-standardisatorerne blev enige om, at de ikke kunne fortsætte med at understøtte standarden i dens nuværende tilstand og ville forhandle ensretning af deres standard med Unicode. To ændringer skete efter denne situation: opgivelsen af ​​begrænsningen på tegnene (forbud mod værdierne af kontrolkarakteren), tegnene således af tilladelse indtil 0x0000101F; og synkroniseringen af ​​repertoiret for det grundlæggende flersprogede plan med Unicodes.

I mellemtiden, med tiden, ændrede situationen sig i selve Unicode-standarden: de 65.536 tegn begyndte at virke sparsomme, og standarden fra version 2.0 laver kodning af 1.112.064 tegn ved hjælp af UTF-kodning. -16 . Af den grund var ISO 10646 begrænset til at indeholde så mange tegn, som kunne kodes af UTF-16, og ikke mere. Det vil sige lidt over en million tegn i stedet for over 2 mia. UCS-4-kodningen af ​​ISO 10646 blev indarbejdet i Unicode-standarden med begrænsningen til UTF-16-serien og under navnet UTF-32 . Hvad angår UTF-1, var der ingen, der brugte det, delvist på grund af dets dårlige kodningsdesign (der var ingen måde at skelne mellem oktetfunktionalitet, et problem svarende til japansk Shift-JIS- kodning ) og dets forringelse af fordele (mange divisionsoperationer) . Rob Pike og Ken Thompson , designerne af Bell Labs' Plan 9-operativsystem, udtænkte en ny, hurtig og veldesignet blandet-bredde-kodning, som fik navnet UTF-8 .

Anvendelsesområde og anvendelsesområde

Multi-Octet Universal Character Code Set (UCS) er anvendelig til repræsentation, transmission, udveksling, behandling, lagring, input og præsentation af stort set alle verdens sprog i skriftlig form. Den grundlæggende del af standarden, fra 1993, specificerer den generelle arkitektur af denne fire-oktet (32-bit) kodning, et kompendium af talrige nationale og internationale tegnsæt. Det definerer de termer, der bruges i dets skrivning, såvel som den generelle struktur af UCS. Den specificerer også, hvad Basic Multilanguage Plan (BMP) består af, en reduktion af koden til 2 oktetter (16 bit) og specificerer det sæt af grafiske symboler, som den er sammensat af, og deres kodede repræsentationer. Den forklarer, hvad de kodede repræsentationer af kontrolfunktionerne er, og håndteringen af ​​fremtidige tilføjelser til dette tegnsæt.

Korrelation med Unicode

  • ISO/IEC 10646-1:1993 ≈ Unicode 1.1
  • ISO/IEC 10646-1:2000 ≈ Unicode 3.0
  • ISO/IEC 10646-2:2001 ≈ Unicode 3.2
  • ISO/IEC 10646:2003 ≈ Unicode 4.0
  • ISO/IEC 10646:2003 plus ændring 1 ≈ Unicode 4.1
  • ISO/IEC 10646:2003 plus ændring 1, ændring 2 og en del af ændring 3 ≈ Unicode 5.0

Se: §D.1 i Unicode-standarden for flere detaljer.

Forbindelse med andre standarder

De første 127 tegn i Basic Multilanguage Plane (BMP), der bruges til 16-bit udvekslingskoden, svarer til ISO 646 , den internationale version af ASCII . De tegn, der udgør anden halvdel af den første række, er dem, der bruges af ISO 8859-1 , Latin-1-sættet. ISO/IEC DIS 14755 -- Metoder til indtastning af tegn fra ISO/IEC 10646-repertoiret med et tastatur eller andre inputenheder. Det forventes meget snart at blive den grundlæggende informationsrepræsentationskode for alle 16-bit og 32-bit systemer.

Se også