Razlika između UCS-2 i UTF-16

UCS-2 vs UTF-16

UCS-2 i UTF-16 dvije su sheme kodiranja znakova koje za predstavljanje svakog znaka koriste 2 bajta, koji se sastoji od 16 bita; dakle 2 i 16 sufiksa. Glavna razlika između UCS-2 i UTF-16 je ta koja se danas koristi. UCS-2 je starija shema koja se od tada smatra zastarjelom i zamijenjena je mnogo novijom i moćnijom UTF-16.

UCS-2 je kodiranje fiksne širine 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 Unicode-u, a pritom koristi minimalni 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; pa su oni u velikoj mjeri jednaki. To omogućuje UTF-16 sposobnim aplikacijama da ispravno interpretiraju UCS-2 kodove. Ali obrnuto to ne bi uspjelo zbog mnogih poboljšanja UTF-16.

Jedno od navedenih poboljšanja je mogućnost predstavljanja skripti koje idu s desna na lijevo, a ne s lijeva na desno. U UTF-16 skripte mogu prepoznati usmjerenost, na taj način omogućujući aplikaciji da pravilno izrazi riječi pohranjene u kodu. UCS-2 nema tu mogućnost pa neće raditi sa skriptama poput arapskog i hebrejskog koji se kreću s desna 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 predstavljene kao identične. Na primjer, riječi "ne mogu" i "ne mogu" su identične jer je drugo samo kontrakcija prvoga. Ovo je vrlo važno, posebno kada tražite takve riječi, jer bi omogućili sveobuhvatniji rezultat pretraživanja. U UCS-2 se to ne događa automatski, pa aplikacija takvu značajku mora implementirati sama.

Zapravo nema razloga da odaberete UCS-2 umjesto UTF-16, osim što imate aplikaciju za koju ne trebate podržavati UTF-16. U svim aspektima UTF-16 je superiorniji od UCS-2. Također je u velikoj mjeri kompatibilno unatrag, tako da ne morate brinuti zbog datoteka kodiranih u UCS-2.

Sažetak:

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