Différence entre UCS-2 et UTF-16 Différence entre

Anonim

UCS-2 vs UTF-16

UCS-2 et UTF-16 sont deux systèmes de codage de caractères qui utilisent 2 octets, qui se compose de 16 bits, pour représenter chaque personnage; ainsi les 2 et 16 suffixes. La principale différence entre UCS-2 et UTF-16 est celle qui est utilisée aujourd'hui. UCS-2 est un schéma plus ancien qui a depuis été considéré obsolète et remplacé par le UTF-16 beaucoup plus récent et plus puissant.

UCS-2 est un codage à largeur fixe qui utilise deux octets pour chaque caractère; ce qui signifie, il peut représenter jusqu'à un total de 216 caractères ou légèrement plus de 65 mille. D'autre part, UTF-16 est un schéma de codage à largeur variable qui utilise un minimum de 2 octets et un maximum de 4 octets pour chaque caractère. Cela permet à UTF-16 de représenter n'importe quel caractère dans Unicode tout en utilisant un espace minimal pour les caractères les plus couramment utilisés. Pour la majorité des 65 000+ caractères, UCS-2 et UTF-16 ont des points de code identiques; donc ils sont largement équivalents. Cela permet aux applications compatibles UTF-16 d'interpréter correctement les codes UCS-2. Mais l'inverse ne fonctionnerait pas en raison des nombreuses améliorations de l'UTF-16.

L'une des améliorations est la possibilité de représenter les scripts de droite à gauche plutôt que de gauche à droite. En UTF-16, les scripts peuvent identifier la directionnalité, permettant ainsi à l'application de restituer correctement les mots stockés dans le code. UCS-2 n'a pas cette capacité donc ne fonctionnera pas avec des scripts comme l'arabe et l'hébreu, qui se déplacent de droite à gauche. Une autre caractéristique de l'UTF-16 est la normalisation. La normalisation traite les mots qui signifient la même chose mais sont représentés différemment comme identiques. Par exemple, les mots «ne peut pas» et «ne peut pas» sont identiques puisque ce dernier n'est qu'une contraction du premier. Ceci est très important, surtout lorsque vous recherchez de tels mots, car cela permettrait un résultat de recherche plus complet. Dans UCS-2, cela ne se produit pas automatiquement, l'application doit donc implémenter une telle fonctionnalité par elle-même.

Il n'y a vraiment aucune raison de choisir UCS-2 sur UTF-16, en plus d'avoir une application dont vous n'avez pas besoin de supporter UTF-16. Dans tous les aspects, UTF-16 est supérieur à UCS-2. Il est également largement rétrocompatible, vous n'avez donc pas à vous soucier des fichiers encodés dans UCS-2.

Résumé:

  1. UCS-2 est obsolète et a depuis été remplacé par UTF-16
  2. UCS-2 est un schéma de codage à largeur fixe tandis que UTF-16 est un schéma de codage à largeur variable
  3. UTF-16 Les applications capables peuvent lire les fichiers UCS-2 mais pas l'inverse. UTF-16 prend en charge le droit de laisser des scripts alors que UCS-2
  4. UTF-16 prend en charge la normalisation alors que UCS-2