Skirtumas tarp UCS-2 ir UTF-16

UCS-2 ir UTF-16

UCS-2 ir UTF-16 yra dvi simbolių kodavimo schemos, naudojančios 2 baitus, sudarytus iš 16 bitų, kiekvienam simboliui pavaizduoti; taigi 2 ir 16 priesagos. Pagrindinis skirtumas tarp UCS-2 ir UTF-16 yra tas, kuris naudojamas šiandien. UCS-2 yra senesnė schema, kuri nuo to laiko laikoma pasenusia ir pakeista daug naujesne ir galingesne UTF-16..

UCS-2 yra fiksuoto pločio kodavimas, kuriame kiekvienam simboliui naudojami du baitai; tai reiškia, kad iš viso tai gali sudaryti 216 simbolių arba šiek tiek daugiau nei 65 tūkst. Kita vertus, UTF-16 yra kintamo pločio kodavimo schema, naudojanti mažiausiai 2 baitus ir ne daugiau kaip 4 baitus kiekvienam simboliui. Tai leidžia UTF-16 pavaizduoti bet kurį „Unicode“ simbolį, tuo pačiu naudojant kuo mažiau vietos dažniausiai naudojamiems simboliams. Daugeliui 65 000 ir daugiau simbolių UCS-2 ir UTF-16 turi identiškus kodo taškus; taigi jie iš esmės yra lygiaverčiai. Tai leidžia UTF-16 turinčioms programoms teisingai interpretuoti UCS-2 kodus. Bet atvirkščiai neveiks dėl daugybės UTF-16 patobulinimų.

Vienas iš minėtų patobulinimų yra galimybė vaizduoti scenarijus, kurie eina iš dešinės į kairę, o ne iš kairės į dešinę. UTF-16 scenarijai gali nustatyti kryptingumą, tokiu būdu taikydami programą teisingai pateikdami kode išsaugotus žodžius. UCS-2 trūksta šių galimybių, todėl jis neveiks su tokiais scenarijais kaip arabai ir hebrajai, kurie juda iš dešinės į kairę. Kita UTF-16 savybė yra normalizavimas. Normalizavimas traktuoja žodžius, kurie reiškia tą patį dalyką, bet skirtingai vaizduojami kaip tapatūs. Pavyzdžiui, žodžiai „negali“ ir „negali“ yra tapatūs, nes pastarasis yra tik ankstesnio sutrumpinimas. Tai labai svarbu, ypač kai ieškote tokių žodžių, nes tai leistų gauti išsamesnį paieškos rezultatą. „UCS-2“ tai neįvyksta automatiškai, todėl programai reikia savarankiškai įdiegti tokią funkciją.

Tikrai nėra priežasties rinktis UCS-2, o ne UTF-16, be to, kad turite programą, kurios jums nereikia palaikyti UTF-16. Visais aspektais UTF-16 yra pranašesnis už UCS-2. Tai taip pat iš esmės suderinama atgal, todėl jums nereikia jaudintis dėl UCS-2 užkoduotų failų.

Santrauka:

  1. „UCS-2“ yra pasenęs ir nuo to laiko pakeistas į „UTF-16“
  2. UCS-2 yra fiksuoto pločio kodavimo schema, o UTF-16 - kintamo pločio kodavimo schema
  3. UTF-16 turinčios programos gali skaityti UCS-2 failus, bet ne atvirkščiai
  4. UTF-16 palaiko teisę leisti scenarijus, o UCS-2 to nedaro
  5. UTF-16 palaiko normalizavimą, o UCS-2 - ne