2010-03-18 11 views
9

Quelle est la différence entre les jeux de caractères et l'encodage de caractères? Quand je dis que j'utilise l'encodage utf-8, quel sera mon jeu de caractères? Est-ce que cela prend unicode comme charset par défaut?Quelle est la différence entre les jeux de caractères et l'encodage de caractères

+0

Duplication possible de [Quelle est la différence entre l'encodage et le jeu de caractères?] (Https://stackoverflow.com/questions/2281646/whats-the-difference-between-encoding-and-charset) –

Répondre

0

Un jeu de caractères définit la correspondance entre des chiffres et des caractères. Presque tous les jeux ombles dire 65 est A, et d'accord en général sur les correspondances des nombres jusqu'à 127. Mais ils pourraient avoir différents stands en ce qui concerne les numéros ci-dessus 127.

Il y a beaucoup de jeux de caractères

  • EBCDIC
  • Double Byte Character set
  • ANSI
  • différent char OEM définit
  • Unicode, un effort pour créer un jeu de caractères unique qui inclus tous les sys d'écriture raisonnable tem sur la planète et certains imaginaires comme Klingon, aussi. Lorsque vous parlez de codage de caractères, vous parlez de la façon dont un point de code Unicode (un caractère) est stocké en interne. En codage UTF-8, chaque point de code compris entre 0 et 127 est stocké dans un seul octet. Seuls les points de code 128 et plus sont stockés en utilisant 2, 3, en fait, jusqu'à 6 octets.
  • Il y a quelque chose appelé UTF-7, qui ressemble beaucoup à UTF-8 mais qui garantit que le bit haut sera toujours zéro
  • Il existe des centaines d'encodages traditionnels qui ne peuvent stocker que quelques points de code correctement et changer tous les autres les points de code en points d'interrogation. Certains encodages populaires du texte anglais sont Windows-1252 (la norme Windows 9x pour les langues d'Europe occidentale) et ISO-8859-1, alias Latin-1 (également utile pour toute langue d'Europe occidentale).
  • Les UTF 7, 8, 16 et 32 ​​ont tous la bonne propriété de pouvoir stocker n'importe quel point de code correctement.

Ce poste est presque entièrement basé sur le poste de Joel Spolsky sur Unicode: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets. Lisez-le pour avoir une meilleure idée.

3

Jeu de caractères: définition que personnage a dont le point de code numérique (ascii, JIS, unicode)

Encoding: définition la façon dont le point de code numérique est représentée physiquement (utf, ucs, ShiftJis)

4

UTF 8 est un encodage du jeu de caractères Unicode. Par conséquent, si vous utilisez UTF-8, le jeu de caractères est Unicode, mais il est peu probable que vous deviez le spécifier séparément. L'autre codage principal d'Unicode est UTF-16, qui n'est pas placé dans des flux d'octets de 8 bits car il contient zéro octet.Si vous traitez Unicode dans une séquence d'octets, il est certainement encodé en UTF-8.

À l'exception d'Unicode, les jeux de caractères sont généralement considérés comme ayant un codage fixe unique, et les termes tels que jeu de caractères, jeu de caractères, page de codes, codage sont souvent utilisés indifféremment ou selon le fournisseur. C'est bâclé mais ne crée aucun problème d'exécution. Les seules exceptions auxquelles je peux penser sont celles d'Asie de l'Est: JIS et EUC ont défini plusieurs encodages pour le même jeu de caractères, mais en pratique, chaque encodage est traité séparément.

+1

Il existe d'autres exceptions: IBM037 et IBM500 ont exactement le même répertoire de caractères que ISO-8859-1, dans un ordre complètement différent. – dan04

+0

Désolé de manquer cela, EBCDIC est un univers complètement différent auquel je pense rarement. Au moins si vous confondez un EBCDIC avec un encodage basé sur ASCII, vous aurez des ordures même avec du texte en anglais, et vous devrez le réparer immédiatement au lieu de le laisser comme une bombe à retardement pour les utilisateurs étrangers et les développeurs i18n. –

2

Selon Unicode terminology

  • ACR: Résumé répertoire de caractères = le jeu de caractères à coder, par exemple, un alphabet ou des jeux de symboles
  • CCS: Coded Character Set = une mise en correspondance d'un répertoire de caractères abstraits à un ensemble de nombres entiers non négatifs
  • CEF: Formulaire de codage de caractères = un mappage d'un ensemble d'entiers non négatifs qui sont des éléments d'un CCS à un ensemble de séquences de par unités de code PARTICULIER d'une certaine largeur spécifiée, tels que des nombres entiers de 32 bits
  • CES: Caractère Schéma d'encodage = une transformation réversible d'un ensemble de séquences d'unités de code (d'une ou plusieurs CEF à une séquence sérialisée d'octets)
  • CM: caractère Carte = une cartographie de séquences de membres d'un répertoire de caractère abstrait à des séquences sérialisées d'octets de pontage quatre niveaux en une seule opération
  • TES: transfert de codage Syntaxe = a réversible transformer des données codées, qui peuvent ou ne pas contenir de données textuelles

Les protocoles plus anciens comme MIME utilisent "charset" quand ils signifient vraiment "schéma de codage de caractères". À l'origine, différents encodages de caractères étaient des répertoires de caractères indépendants au lieu de sous-ensembles d'Unicode.

Questions connexes