UCS-2 a UTF-16

Anonim

UCS-2 vs UTF-16

UCS-2 a UTF-16 jsou schémata kódování dvou znaků, které používají 2 bajty, které se skládají ze 16 bitů, které reprezentují každý znak; tedy přípony 2 a 16. Hlavní rozdíl mezi UCS-2 a UTF-16 je ten, který je dnes používán. UCS-2 je starší schéma, které bylo od té doby považováno za zastaralé a nahrazeno mnohem novějším a výkonnějším UTF-16.

UCS-2 je kódování s pevnou šířkou, které pro každý znak používá dva bajty; což může znamenat až 216 znaků nebo mírně přes 65 tisíc. Naproti tomu UTF-16 je schéma kódování proměnné šířky, které pro každý znak používá minimálně 2 bajty a maximálně 4 bajty. To umožňuje, aby UTF-16 představoval libovolný znak v Unicode, zatímco při použití minimálního místa pro nejběžněji používané znaky je minimální. U většiny 65 000 a více znaků mají UCS-2 a UTF-16 identické kódové body; tak jsou z velké části ekvivalentní. To umožňuje aplikacím schopným UTF-16 správně interpretovat kódy UCS-2. Ale na druhou stranu by to nefungovalo kvůli mnoha vylepšením v UTF-16.

Jedním z uvedených vylepšení je schopnost reprezentovat skripty, které se pohybují zprava doleva, nikoli zleva doprava. V UTF-16 mohou skripty identifikovat směrovost, což umožňuje aplikaci správně vykreslovat slova uložená v kódu. UCS-2 postrádá tuto schopnost tak nebude pracovat se skripty jako arabština a hebrejština, které se pohybují zprava doleva. Dalším znakem, který má UTF-16, je normalizace. Normalizace zachází se slovy, které znamenají tutéž věc, ale jsou zastoupeny jinak. Například slova "nemohou" a "nemohou" jsou totožná, neboť druhá je pouze kontrakcí prvního. To je velmi důležité, zvláště když hledáte tato slova, protože by to umožnilo obsáhlejší výsledek vyhledávání. V UCS-2 se to samozřejmě nevyskytuje automaticky, takže aplikace musí implementovat tuto vlastnost sama.

Neexistuje žádný důvod vybrat si UCS-2 přes UTF-16, kromě aplikace, která nepotřebujete podporu UTF-16. Ve všech ohledech je UTF-16 lepší než UCS-2. Je také z velké části zpětně kompatibilní, takže se nemusíte starat o soubory kódované v UCS-2.

Souhrn:

  1. UCS-2 je zastaralá a od té doby byla nahrazena UTF-16
  2. UCS-2 je schéma kódování s pevnou šířkou, zatímco UTF-16 je schéma kódování s proměnnou šířkou
  3. Aplikace podporující UTF-16 mohou číst soubory UCS-2, ale ne naopak
  4. UTF-16 podporuje právo nechávat skripty, zatímco UCS-2 ne
  5. UTF-16 podporuje normalizaci, zatímco UCS-2 není