Rozdiel medzi UCS-2 a UTF-16

UCS-2 verzus UTF-16

UCS-2 a UTF-16 sú dve schémy kódovania znakov, ktoré používajú 2 bajty, ktoré sa skladajú zo 16 bitov, na znázornenie každého znaku; teda prípony 2 a 16. Hlavný rozdiel medzi UCS-2 a UTF-16 je ten, ktorý sa dnes používa. UCS-2 je staršia schéma, ktorá sa odvtedy považuje za zastaranú a nahradila ju oveľa novšia a výkonnejšia UTF-16..

UCS-2 je kódovanie s pevnou šírkou, ktoré používa dva bajty pre každý znak; to znamená, že môže predstavovať celkom 216 znakov alebo niečo viac ako 65 tisíc. Na druhej strane, UTF-16 je schéma kódovania s premenlivou šírkou, ktorá používa minimálne 2 bajty a maximálne 4 bajty pre každý znak. To umožňuje, aby UTF-16 reprezentoval akýkoľvek znak v Unicode a zároveň využíval minimálny priestor pre najbežnejšie používané znaky. Pre väčšinu 65 000+ znakov majú UCS-2 a UTF-16 rovnaké kódové body; takže sú do značnej miery rovnocenné. To umožňuje aplikáciám UTF-16 správne interpretovať kódy UCS-2. Ale naopak by nefungovalo kvôli mnohým vylepšeniam v UTF-16.

Jedným z uvedených vylepšení je schopnosť reprezentovať skripty, ktoré smerujú sprava doľava a nie zľava doprava. V UTF-16 môžu skripty identifikovať smerovosť, čo aplikácii umožňuje správne vykreslenie slov uložených v kóde. UCS-2 nemá túto schopnosť, takže nebude fungovať s skriptmi ako arabčina a hebrejčina, ktoré sa pohybujú sprava doľava. Ďalšou vlastnosťou, ktorú má UTF-16, je normalizácia. Normalizácia zaobchádza so slovami, ktoré znamenajú to isté, ale sú zobrazené inak ako identické. Napríklad slová „nemôžu“ a „nemôžu“ sú zhodné, pretože druhé slovo je iba kontrakciou prvého. Je to veľmi dôležité, najmä ak hľadáte také slová, pretože by to umožnilo komplexnejší výsledok vyhľadávania. V UCS-2 k tomu nedochádza automaticky, takže aplikácia musí túto funkciu implementovať sama.

Nie je dôvod, aby ste si vybrali UCS-2 oproti UTF-16, okrem aplikácie, ktorú nemusíte podporovať UTF-16. Vo všetkých aspektoch je UTF-16 lepší ako UCS-2. Je tiež do značnej miery spätne kompatibilný, takže sa nemusíte starať o súbory kódované v UCS-2.

Zhrnutie:

  1. UCS-2 je zastaraný a od tej doby bol nahradený UTF-16
  2. UCS-2 je schéma kódovania s pevnou šírkou, zatiaľ čo UTF-16 je schéma kódovania s premennou šírkou
  3. Aplikácie podporujúce UTF-16 dokážu čítať súbory UCS-2, ale nie naopak
  4. UTF-16 podporuje právo nechať skripty, zatiaľ čo UCS-2 nie
  5. UTF-16 podporuje normalizáciu, zatiaľ čo UCS-2 nie