UCS-2 ja UTF-16

Anonim

UCS-2 vs. UTF-16

UCS-2 ja UTF-16 ovat kaksimerkkisiä koodausjärjestelmiä, jotka käyttävät 2 tavua, joka koostuu 16 bitistä kunkin merkin esittämiseksi; siis 2 ja 16 jälkiliitosta. Tärkein ero UCS-2: n ja UTF-16: n välillä on se, jota käytetään nykyään. UCS-2 on vanhempi järjestelmä, jota on sen jälkeen pidetty vanhentuneeksi ja korvattu paljon uudemmalla ja tehokkaammalla UTF-16: lla.

UCS-2 on kiinteä leveyskoodaus, joka käyttää kahta tavua jokaiselle merkille; eli se voi olla enintään 216 merkkiä tai hieman yli 65 tuhatta. Toisaalta UTF-16 on muuttuvan leveyden koodausjärjestelmä, joka käyttää vähintään 2 tavua ja korkeintaan 4 tavua jokaiselle merkille. Tämä antaa UTF-16: lle mahdollisen merkin Unicodessa, kun käytetään mahdollisimman vähän tilaa tavallisimmin käytetyille merkkeille. Suurin osa 65 000+ merkistä, UCS-2 ja UTF-16 ovat identtisiä koodipisteitä; joten ne ovat suurelta osin vastaavia. Näin UTF-16-sovellukset pystyvät tulkitsemaan UCS-2-koodit oikein. Mutta toisin päin, se ei toimi monien UTF-16: n parannusten takia.

Yksi mainituista parannuksista on kyky edustaa skriptejä, jotka kulkevat oikealta vasemmalle eikä vasemmalta oikealle. UTF-16: ssä komentosarjat voivat tunnistaa suuntauksen, jolloin sovellus pystyy oikein tuottamaan koodissa tallennetut sanat. UCS-2: llä ei ole tätä kykyä, joten se ei toimi skripteillä, kuten arabiaksi ja hepreaksi, jotka siirtyvät oikealta vasemmalle. Toinen ominaisuus, jolla UTF-16: lla on, on normalisointi. Normalisointi käsittelee sanoja, jotka tarkoittavat samaa asiaa, mutta jotka ovat eri tavoin identtisiä. Esimerkiksi sanat "ei voi" ja "ei voi" ovat identtisiä, koska jälkimmäinen on vain supistuminen edellisestä. Tämä on erittäin tärkeää, varsinkin kun etsit tällaisia ​​sanoja, sillä se mahdollistaa kattavamman hakutuloksen. UCS-2: ssa tämä ei tapahdu automaattisesti, joten sovelluksen on toteutettava tällainen ominaisuus itsenäisesti.

Ei ole todellakaan mitään syytä valita UCS-2: ta UTF-16: n yli, ellei sinulla ole sovellusta, jota et tarvitse UTF-16: n tukemista. UTF-16 on kaiken kaikkiaan parempi kuin UCS-2. Se on myös pitkälti taaksepäin yhteensopiva, joten sinun ei tarvitse huolehtia UCS-2: ssä koodatuista tiedostoista.

Yhteenveto:

  1. UCS-2 on vanhentunut ja on sittemmin korvattu UTF-16: lla
  2. UCS-2 on kiinteä leveyskoodaus, kun taas UTF-16 on muuttuvan leveyden koodausjärjestelmä
  3. UTF-16-sovellukset voivat lukea UCS-2-tiedostoja, mutta ei toisinpäin
  4. UTF-16 tukee oikeutta antaa komentosarjoja, kun taas UCS-2 ei
  5. UTF-16 tukee normalisointia, kun taas UCS-2 ei