Question

Quel est le format d'encodage ANSI? Est-ce un format par défaut du système? De quelle manière est-il différent de l'ASCII?

Était-ce utile?

La solution

encodage ANSI est un terme générique légèrement utilisé pour se référer à la page de code standard sur un système, généralement sous Windows. Il est plus correctement appelé Windows 1252 sur l'Ouest / U.S. systèmes. (Il peut représenter certains autres pages de code de Windows sur d'autres systèmes.) Ceci est essentiellement un extension du jeu de caractères ASCII en ce qu'il comprend tous les caractères ASCII avec un 128 codes supplémentaires de caractère. Cette différence est due au fait que « ANSI » encoding est 8 bits au lieu de 7 bits en ASCII est (ASCII est presque toujours codé aujourd'hui sous forme d'octets de 8 bits avec le MSB à 0). Voir l'article pour une explication des raisons pour lesquelles ce codage est généralement appelé ANSI.

Le nom « ANSI » est un terme impropre, car elle ne correspond à aucune norme ANSI réelle, mais le nom est resté. ANSI ne sont pas les mêmes que UTF-8.

Autres conseils

Techniquement, ANSI doit être le même que US-ASCII. Il fait référence à la norme ANSI X3.4, ce qui est tout simplement le ANSI version de l'organisation de l'ASCII ratifiée. Utilisation des caractères haut bit-jeu n'est pas défini en ASCII / ANSI comme il est un jeu de caractères 7 bits.

Cependant années d'utilisation abusive du terme par le DOS, puis la communauté Windows a laissé son sens pratique comme « le système de codepage quelle que soit la machine est utilisée ». Le codepage du système est aussi parfois connu sous le nom « MBCS », puisque sur les systèmes d'Asie orientale qui peuvent être un codage multi-octets par caractère. Certaines pages de code peuvent même utiliser top-bit clair octets sous forme d'octets de fuite dans une séquence multi-octets, il est donc même pas stricte compatible avec ASCII ... mais même alors, il est encore appelé « ANSI ».

Etats-Unis et occidentaux paramètres par défaut européens, cartes « ANSI » à la page de code Windows 1252. Ce n'est pas la même chose que ISO-8859-1 (bien qu'il soit tout à fait similaire). Sur d'autres machines, il pourrait être autre chose du tout. Cela rend « ANSI » totalement inutile comme identifiant d'encodage externe.

à proprement parler, il n'y a pas une telle chose que l'encodage ANSI. Familièrement le terme ANSI est utilisé pour plusieurs encodages différents:

  1. ISO 8859-1
  2. de Windows CP1252
  3. encodage du système actuel sur une machine Windows (dans la terminologie Win32 API).

Il était une fois Microsoft, comme tout le monde, utilisé des jeux de caractères 7 bits, et ils ont inventé leur propre quand il leur convenait, mais ils ont gardé ASCII comme un sous-ensemble de base. Ensuite, ils ont réalisé que le monde avait passé à codages 8 bits et qu'il y avait des normes internationales autour, comme la famille ISO-8859. Dans ces jours, si l'on voulait mettre la main sur une norme internationale et vous avez vécu aux États-Unis, vous l'avez acheté de l'American National Standards Institute, ANSI, qui republié les normes internationales avec leur propre image de marque et de chiffres (c'est parce que le gouvernement américain veut la conformité aux normes américaines, pas aux normes internationales). Donc, la copie de Microsoft de la norme ISO-8859 dit « ANSI » sur la couverture. Et parce que Microsoft ne sont pas très utilisés pour les normes dans ces jours-là, ils ne se rendent pas compte que la norme ANSI a publié beaucoup d'autres normes. Ainsi, ils ont fait référence aux normes de la famille ISO-8859 (et les variantes qu'ils ont inventé, parce qu'ils ne comprennent pas vraiment les normes dans ces jours) par le nom sur la couverture, « ANSI », et il a trouvé son chemin dans Microsoft documentation utilisateur et par conséquent dans la communauté des utilisateurs. Cela était d'environ 30 il y a quelques années, mais vous encore parfois entendre le nom aujourd'hui.

ASCII définit juste une page de code 7 bits avec 128 symboles. ANSI étend ce à 8 bits et il y a plusieurs pages de code différentes pour les symboles 128 à 255.

La dénomination ANSI n'est pas correct, car il est en fait la norme ISO / CEI 8859 norme qui définit ces pages de code. Voir ISO / IEC 8859 pour référence. Il y a 16 pages de code ISO / CEI 8859-1 à ISO / CEI 8859-16.

Windows 1252 est à nouveau basé sur la norme ISO / CEI 8859-1 avec quelques modifications principalement dans la gamme du C1 fixé dans la gamme 128 à 159. Wikipédia affirme que Windows- 1252 est également Référé ISO-8859-1 avec un deuxième trait d'union entre l'ISO et 8859. (incroyable! qui fait quelque chose comme ça?!?)

Fondamentalement « ANSI » fait référence à la page de code existant sous Windows. Voir aussi un article de Raymond Chen sur ce sujet . Les 127 premiers caractères sont identiques à ASCII dans la plupart des pages de code, les caractères majuscules varient, cependant.

Cependant, ANSI ne pas signifie automatiquement CP1252 ou Latin 1.

Toutes confusion malgré vous devez simplement éviter ces problèmes de nos jours et utiliser Unicode.

Juste au cas où votre PC n'est pas un « occidental » PC et vous ne savez pas quelle page code est utilisé, vous pouvez jeter un oeil à cette page: national Language support API (SNA) Référence

[Microsoft a supprimé cette référence, prendre forme archives web national Language support (NLS) Référence de l'API

Vous pouvez également interroger votre base de registre:

C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
    ACP    REG_SZ    1252

End of search: 1 match(es) found.

C:\>

Lors de l'utilisation des caractères codés sur un octet, le format ASCII définit le premier 127 caractères. Les caractères étendus de 128-255 sont définis par les différentes pages de code ANSI pour permettre un soutien limité pour d'autres langues. Afin de donner un sens d'une chaîne codée ANSI, vous devez savoir quelle page le code qu'il utilise.

Je me souviens lorsque le texte « ANSI » fait référence aux codes d'échappement pseudo-VT 100 utilisables dans DOS via le pilote ANSI.SYS pour modifier le flux de texte en streaming .... Probablement pas ce que vous faites référence, mais si elle est voir http://en.wikipedia.org/wiki/ANSI_escape_code

ANSI (alias Windows 1252 / WinLatin1) est un codage de caractères de l'alphabet latin, assez semblable à ISO-8859-1. Vous voudrez peut-être jeter un oeil de il à Wikipédia .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top