Lorsque j'essaie d'enregistrer un fichier texte avec du texte non anglais dans le bloc-notes, j'obtiens une option pour choisir entre Unicode , Unicode Big Endian et UTF-8 . Quelle est la différence entre ces formats?
En supposant que je ne ne veux aucune compatibilité descendante (avec les anciennes versions OS ou applications) et je ne pas se soucier de la taille du fichier, lequel de ces formats est mieux?
(Supposons que le texte puisse être dans des langues comme le chinois ou le japonais, en plus d'autres langues.)
Remarque: D'après les réponses et commentaires ci-dessous, il semble que dans le jargon du bloc-notes, Unicode est UTF-16 (Little Endian), Unicode Big Endian est UTF-16 (Big Endian) et UTF-8 est bien UTF-8.
Réponses:
Je ne sais pas. Quel est le meilleur: une scie ou un marteau? :-)
Unicode n'est pas UTF
Il y a un peu dans l'article qui est un peu plus pertinent par rapport au sujet traité:
UTF-32 se concentre sur l'exhaustivité et la représentation de longueur fixe, en utilisant 4 octets pour tous les caractères. C'est la traduction la plus simple, mappant directement le point de code Unicode à 4 octets. De toute évidence, ce n'est pas très efficace en termes de taille.
UTF-16 est un compromis, utilisant 2 octets la plupart du temps, mais s'étendant à 2 * 2 octets par caractère pour représenter certains caractères, ceux qui ne sont pas inclus dans le plan multilingue de base (BMP).
Voir également le minimum absolu que tous les développeurs de logiciels doivent absolument savoir sur Unicode et les jeux de caractères (pas d'excuses!)
la source
Pour les langues européennes, UTF-8 est plus petit. Pour les langues orientales, la différence n'est pas aussi nette.
Les deux géreront tous les caractères Unicode possibles, donc cela ne devrait faire aucune différence de compatibilité.
la source
Il y a plus d'encodages de caractères Unicode que vous ne le pensez.
UTF 8
Le codage UTF-8 est de largeur variable, allant de 1 à 4 octets, les bits supérieurs de chaque octet étant réservés comme bits de contrôle. Les bits de tête du premier octet indiquent le nombre total d'octets utilisés pour ce caractère. La valeur scalaire du point de code d'un caractère est la concaténation des bits non contrôlés. Dans ce tableau,
x
représente les 8 bits les plus bas de la valeur Unicode,y
représente les 8 bits supérieurs suivants etz
représente les bits supérieurs à cela.la source
"Unicode" est un autre terme pour "UTF-16", qui est un codage du jeu de caractères Unicode en seize bits par caractère. UTF-8 l'encode en huit bits par caractère.
Dans les deux cas, tout débordement est alloué à 16 ou 8 bits supplémentaires.
la source
Le seul véritable avantage avec les petits fichiers comme les fichiers texte est la taille du fichier résultant. UTF-8 produit généralement des fichiers plus petits. Mais cette différence peut être moins prononcée avec le texte chinois / japonais.
la source
En un mot, Unicode est un jeu de caractères , tandis que Unicode Big Endian et utf-8 sont deux encodages , qui sont utilisés pour stocker des caractères sous forme de 01 sur un ordinateur.
la source