UCS-2 vs. UTF-16
UCS-2 a UTF-16 jsou dvě schémata kódování znaků, která k reprezentaci každého znaku používají 2 bajty, které se skládají ze 16 bitů; tedy přípony 2 a 16. Hlavní rozdíl mezi UCS-2 a UTF-16 je ten, který se dnes používá. UCS-2 je starší schéma, které je 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é používá dva bajty pro každý znak; to znamená, že může představovat celkem 216 znaků nebo mírně více než 65 tisíc. Na druhé straně je UTF-16 schéma kódování s proměnnou šířkou, které používá minimálně 2 bajty a maximálně 4 bajty pro každý znak. To umožňuje UTF-16 reprezentovat libovolný znak v Unicode při využití minimálního prostoru pro nejčastěji používané znaky. U většiny 65 000+ znaků mají UCS-2 a UTF-16 identické kódové body; takže jsou do značné míry rovnocenné. To umožňuje aplikacím podporujícím UTF-16 správně interpretovat kódy UCS-2. Ale naopak by nefungovalo kvůli mnoha vylepšením v UTF-16.
Jedním z uvedených vylepšení je schopnost reprezentovat skripty, které jde zprava doleva spíše než zleva doprava. V UTF-16 mohou skripty identifikovat směrovost, což umožňuje aplikaci správně vykreslit slova uložená v kódu. UCS-2 postrádá tuto schopnost, takže nebude fungovat s skripty jako arabština a hebrejština, které se pohybují zprava doleva. Další funkcí, kterou má UTF-16, je normalizace. Normalizace zachází se slovy, které znamenají totéž, ale jsou zastoupeny odlišně jako identické. Například slova „nemůže“ a „nemůže“ jsou identická, protože druhá je pouze zkrácením první. To je velmi důležité, zejména pokud hledáte taková slova, protože by to umožnilo komplexnější výsledek vyhledávání. V UCS-2 k tomu nedochází automaticky, takže aplikace musí tuto funkci implementovat sama.
Není opravdu důvod zvolit UCS-2 než UTF-16, kromě aplikace, kterou nemusíte podporovat UTF-16. Ve všech aspektech je UTF-16 lepší než UCS-2. Je také velmi zpětně kompatibilní, takže se nemusíte starat o soubory kódované v UCS-2.
Souhrn: