UTF-16

UTF-16 er en kodning af Unicode-tegn i en sekvens af tal til 16-bit. UTF-16 er officielt defineret i bilag Q i ISO / IEC 10646, og er beskrevet i version 3.0 og senere af "Unicode standard", såvel som i RFC 2781 af IETF.

UTF-16

I UTF-16 Unicode-tegn med værdier på op til 65535 er repræsenteret med deres numeriske værdi, udtrykt i 16 bit. Tegnene uden for Basic Multilingual Plane, hvis kode er større end 65535 og ikke direkte repræsenteres med 16 bit, er repræsenteret ved et surrogat par, eller et par koder i området fra 0xD800 til 0xDFFF. For eksempel:

  • tegnet "A", der svarer til koden 65, er gengivet som 0x0041
  • karakteren 0x10000 bliver parret 0xD800, 0xDC00
  • 0x10FFFD karakter, på den øvre grænse for Unicode er repræsenteret af sekvensen 0xDBFF, 0xDFFD.

Unicode tildeler ikke et tegn til enhver værdi mellem 0xD800 og 0xDFFF, således at man undgår, at de enkelte elementer i en surrogat par kan forveksles med en gyldig Unicode-tegn.

Varianter af UTF-16

Den koder UTF-16 lagres som 16-bit ord, et ord pr kode. Siden byte orden i et ord varierer med arkitekturen af ​​computeren, UTF-16 har tre kodningsskemaer, UTF-16, UTF-16LE og UTF-16BE.

UTF-16 kræver, at byte ordre erklæres eksplicit tilføje en byte rækkefølge mark præfiks for hver kodet tekst. Styklisten er den kodede form af Zero karakter bredde, ikke bryde plads, svarende all'esadecimale 0xFEFF, repræsenteret som 0xFE, 0xFF på big endian-systemer og 0xFF, 0xFE på little endian-systemer.

UTF-16BE og UTF-16LE er identiske med UTF-16, med den undtagelse, at byte ordre er underforstået, UTF-16BE for big endian og little endian UTF-16LE. Tegnet 0xFEFF begyndelsen af ​​en tekst repræsenteret med en af ​​disse to kodninger betragtes som en del af teksten i stedet for som BOM.

IANA har godkendt navnene UTF-16, UTF-16BE og UTF-16LE, enten øvre eller nedre fald til brug på internettet. Navnene UTF_16 eller UTF16, der almindeligvis anvendes, kan genkendes af specifikke programmeringssprog eller applikationer, men de er ikke officielt gyldige.

UTF-16 er den indfødte repræsentation af teksten for versioner af Windows NT-baserede, for programmeringssproget Java og for ambienti.NET og Mac OS X Kakao og Core.

Eksempler


* For at kunne vise tegn er krævede skrifttyper og Unicode-kompatibel software.

Procedure af UTF-16

Antag, at vi ønsker at indkode tegnet U + 64.321. Er større end 0xFFFF det skal repræsenteres af et surrogat par, på denne måde:

Repræsentationen af ​​tegnet U + 64.321 er derefter følgende par 16-bit ord: