Forskel mellem UCS-2 og UTF-16 Forskellen mellem

Anonim

UCS-2 vs UTF-16

UCS-2 og UTF-16 to tegnkodningssystemer, der bruger 2 byte, der består af 16 bits, til at repræsentere hver Karakter; således 2 og 16 suffikser. Den største forskel mellem UCS-2 og UTF-16 er den, der bruges i dag. UCS-2 er en ældre ordning, der siden er blevet betragtet forældet og erstattet med den meget nyere og kraftigere UTF-16.

UCS-2 er en kodet fast bredde, der bruger to byte for hver karakter; Det betyder, at det kan repræsentere op til i alt 216 tegn eller lidt over 65 tusind. På den anden side er UTF-16 et kodningssystem med variabel bredde, der bruger mindst 2 byte og maksimalt 4 byte for hvert tegn. Dette lader UTF-16 repræsentere ethvert tegn i Unicode, mens du bruger minimal plads til de mest almindeligt anvendte tegn. For de fleste af de 65, 000 + tegn har UCS-2 og UTF-16 identiske kodepunkter; så de er stort set ens. Dette gør det muligt for UTF-16-kompatible programmer at fortolke UCS-2-koder korrekt. Men omvendt ville det ikke fungere på grund af de mange forbedringer i UTF-16.

Et af de nævnte forbedringer er evnen til at repræsentere scripts, der går fra højre til venstre i stedet for fra venstre mod højre. I UTF-16 kan scripterne identificere retningsstyrke, hvilket gør det muligt for applikationen at ordne de ord, der er gemt i koden korrekt. UCS-2 mangler denne evne og vil således ikke fungere med scripts som arabisk og hebraisk, som bevæger sig fra højre mod venstre. En anden funktion, som UTF-16 har, er normalisering. Normalisering behandler ord, der betyder det samme, men er repræsenteret anderledes som identiske. For eksempel kan ordene "kan ikke" og "ikke kan" være identiske, da sidstnævnte kun er en sammentrækning af den førstnævnte. Dette er meget vigtigt, især når du søger efter sådanne ord, da det ville give mulighed for et mere omfattende søgeresultat. I UCS-2 sker dette ikke automatisk, så programmet skal selv gennemføre en sådan funktion.

Der er virkelig ingen grund til at vælge UCS-2 over UTF-16, bortset fra at have en applikation, behøver du ikke støtte UTF-16. I alle aspekter er UTF-16 overlegen til UCS-2. Det er også stort set bagudkompatibelt, så du behøver ikke bekymre dig om filer kodet i UCS-2.

Sammendrag:

  1. UCS-2 er forældet og er siden blevet udskiftet med UTF-16
  2. UCS-2 er en fast bredde kodningsordning, mens UTF-16 er en kodning med variabel bredde
  3. UTF-16 kompatible programmer kan læse UCS-2 filer, men ikke omvendt
  4. UTF-16 understøtter ret til at lade scripts, mens UCS-2 ikke
  5. UTF-16 understøtter normalisering, mens UCS-2 ikke