Unicode, UTF, ASCII, les différences de format ANSI
-
22-08-2019 - |
Question
Quelle est la différence entre les Unicode
, UTF8
, UTF7
, UTF16
, UTF32
, ASCII
et codages ANSI
?
En quoi sont-elles utiles pour les programmeurs?
La solution
En descendant votre liste:
- « » n'est pas un codage, mais malheureusement, beaucoup de documentation utilise imprécisément pour se référer à un codage Unicode selon ce système particulier utilise par défaut. Sous Windows et Java, cela signifie souvent UTF-16; dans beaucoup d'autres endroits, cela signifie UTF-8. Eh bien, Unicode fait référence au caractère abstrait lui-même fixé, à aucun codage particulier.
- UTF-16 : 2 octets par "unité de code". Ceci est le format natif de chaînes dans .NET, et généralement sous Windows et Java. Les valeurs en dehors de la (BMP) sont codées sous forme de paires de substitution. (Ceux-ci sont rarement utilisées -.. Ce qui est un bon travail, car très peu de développeurs à obtenir raison, je pense que je doute fort que je fais)
- UTF-8 : codage de longueur variable, 1-4 octets par point de code. valeurs ASCII sont codés en ASCII en utilisant 1 octet.
- UTF-7 : Habituellement utilisé pour le codage de messagerie. Il y a des chances si vous pensez que vous en avez besoin et vous ne faites pas la poste, vous avez tort. (C'est juste mon expérience des personnes postage dans les newsgroups, etc -. Courrier à l'extérieur, il est vraiment pas largement utilisé du tout)
- UTF-32 : codage de largeur fixe à l'aide de 4 octets par point de code. Ce n'est pas très efficace, mais rend la vie plus facile en dehors du BMP. J'ai une classe de
Utf32String
.NET dans le cadre de mon bibliothèque de MiscUtil, si vous voulez jamais. (Elle n'a pas été testé très bien, vous l'esprit.) - ASCII : le codage de l'octet unique en utilisant uniquement les 7 bits inférieurs. (Code Unicode indique 0-127.) Aucun accents etc.
- ANSI: Il n'y a pas d'un encodage ANSI fixe - il y a beaucoup d'entre eux. En général, quand les gens disent « ANSI » ils veulent dire « les paramètres régionaux / codepage défaut pour mon système » qui est obtenu via Encoding.Default , et est souvent Windows- 1252 mais peut-être d'autres endroits.
Il y a plus sur ma page Unicode et conseils pour le débogage des problèmes Unicode .
L'autre grande ressource de code est unicode.org qui contient plus d'informations que vous aurez jamais être en mesure de travailler votre chemin à travers -. peut-être le bit le plus utile est le code
Autres conseils
Un peu de lecture pour vous aider à démarrer sur codages de caractères: Joel on Software: Le logiciel Chaque absolu minimum Developer Absolument, Positively doit savoir sur Unicode et les jeux de caractères (No Excuses!)
Par ailleurs - ASP.NET n'a rien à voir avec elle. Encodages sont universels.