UCS-2 i UTF-16

Anonim

UCS-2 vs UTF-16

UCS-2 i UTF-16 su dvije sheme kodiranja znakova koje koriste 2 bajtova, koja se sastoji od 16 bita, da predstavljaju svaki znak; dakle 2 i 16 sufiksa. Glavna razlika između UCS-2 i UTF-16 je ono što se danas koristi. UCS-2 je starija shema koja se od tada smatra zastarjelom i zamijenjena mnogo novijim i snažnim UTF-16.

UCS-2 je fiksna širina kodiranja koja koristi dva bajta za svaki znak; što znači, može predstavljati do ukupno 216 znakova ili nešto više od 65 tisuća. S druge strane, UTF-16 je shema kodiranja promjenjive širine koja koristi najmanje 2 bajta i maksimalno 4 bajta za svaki znak. To omogućuje UTF-16 da predstavlja bilo koji znak u Unicodeu, a koristi minimalan prostor za najčešće korištene znakove. Za većinu od 65.000 znakova, UCS-2 i UTF-16 imaju identične kodne točke; tako da su uglavnom ekvivalentni. To omogućuje aplikacijama sposobnima za UTF-16 da ispravno tumače UCS-2 kodove. No, obrnuto ne bi radilo zbog mnogih poboljšanja u UTF-16.

Jedno od navedenih poboljšanja je sposobnost predstavljanja skripti koje idu s desna na lijevo, a ne s lijeva na desno. U UTF-16 skripte mogu prepoznati smjernost, čime aplikacija može pravilno prikazati riječi pohranjene u kodu. UCS-2 nema ovu sposobnost, stoga neće raditi s skriptama kao što su arapski i hebrejski, koji se kreću od desno na lijevo. Još jedna značajka koju UTF-16 ima je normalizacija. Normalizacija tretira riječi koje znače istu stvar, ali su različito zastupljene kao identične. Na primjer, riječi "ne mogu" i "ne mogu" su identične jer je posljednja samo kontrakcija prve. To je vrlo važno, pogotovo kada tražite takve riječi, jer bi omogućio sveobuhvatniji rezultat pretraživanja. U UCS-2 se to ne događa automatski, tako da aplikacija treba implementirati takvu značajku samostalno.

Stvarno nema razloga odabrati UCS-2 preko UTF-16, osim toga što imate aplikaciju koju ne trebate podržavati UTF-16. U svim aspektima, UTF-16 je superiorniji od UCS-2. Također je u velikoj mjeri kompatibilan s natrag, tako da ne morate brinuti o datotekama kodiranim u UCS-2.

Sažetak:

  1. UCS-2 je zastario i od tada je zamijenjen s UTF-16
  2. UCS-2 je shema kodiranja širine fiksne širine, dok je UTF-16 shema šifriranja promjenjive širine
  3. UTF-16 sposobni programi mogu čitati UCS-2 datoteke, ali ne i obrnuto
  4. UTF-16 podržava pravo pustiti skripte dok UCS-2 ne
  5. UTF-16 podržava normalizaciju dok UCS-2 ne