Qu'est-ce que le format ANSI?

Qu'est-ce que le format d'encodage ANSI? Est-ce un format par défaut du système? En quoi diffère-t-elle de L'ASCII?

164
demandé sur Ripon Al Wasim 2009-03-31 20:26:45

10 réponses

encodage ANSI est un terme générique utilisé pour désigner la page de code standard d'un système, généralement Windows. Il est plus correctement appelé Windows-1252 sur les systèmes de L'Ouest/États-Unis. (Il peut représenter certaines autres pages de code de Windows sur d'autres systèmes.) Il s'agit essentiellement d'une extension du jeu de caractères ASCII en ce qu'elle inclut tous les caractères ASCII avec des codes de 128 caractères supplémentaires. Ce la différence est due au fait que l'encodage" ANSI "est 8-bit plutôt que 7-bit comme ASCII est (ASCII est presque toujours encodé de nos jours en octets 8-bit avec le MSB mis à 0). Voir l'article pour une explication de la raison pour laquelle ce codage est généralement appelé ANSI.

le nom "ANSI" est un nom erroné, car il ne correspond à aucune norme ANSI réelle, mais le nom est resté. L'ANSI n'est pas le même que L'UTF-8.

193
répondu Noldorin 2017-04-04 21:35:55

techniquement, L'ANSI devrait être la même que L'US-ASCII. Il se réfère à L'ANSI X3.4 norme, qui est simplement la ANSI version ratifiée de L'ASCII de l'organisation. L'utilisation des caractères de la série de bits supérieure n'est pas définie dans ASCII/ANSI car il s'agit d'un jeu de caractères de 7 bits.

cependant des années d'utilisation abusive du terme par la communauté DOS et par la suite Windows a laissé son sens pratique comme "la page de code du système de n'importe quelle machine est utilisée". Le système codepage est parfois connu sous le nom de " mbcs’, car sur les systèmes de L'Asie de l'est qui peut être un encodage de plusieurs octets par caractère. Certaines pages de code peuvent même utiliser des octets clairs en haut comme des octets traînants dans une séquence multi-octets, donc ce n'est même pas strictement compatible avec un ASCII simple... mais même là, ça s'appelle encore "ANSI".

Sur NOUS et de l'europe Occidentale paramètres par défaut, "ANSI" des cartes pour Windows page de code 1252. Ce N'est pas la même chose que la norme ISO-8859-1 (bien qu'elle soit assez similaire). Sur les autres machines, il pourrait être n'importe quoi d'autre. Cela rend" ANSI " totalement inutile en tant qu'identificateur d'encodage externe.

48
répondu bobince 2009-03-31 19:10:09

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

  1. ISO 8859-1
  2. Windows CP1252
  3. système Actuel d'encodage sur une machine Windows (dans l'API Win32 de la terminologie).
24
répondu Nemanja Trifunovic 2018-08-02 08:51:09

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

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

Windows-1252 est de nouveau basé sur ISO/IEC 8859-1 avec quelques modifications principalement dans la gamme de la C1 control set dans la gamme 128 à 159. Wikipedia déclare que Windows-1252 est également référencé comme ISO-8859-1 avec un deuxième trait d'union entre ISO et 8859. (Incroyable! Qui fait une chose pareille?!?)

12
répondu Daniel Brückner 2009-03-31 16:54:57

il était une fois Microsoft, comme tout le monde, a utilisé des jeux de caractères 7 bits, et ils ont inventé leur propre quand il leur convenait, bien qu'ils ont gardé ASCII comme un sous-ensemble de base. Puis ils ont réalisé que le monde était passé aux encodages à 8 bits et qu'il y avait des normes internationales autour, comme la famille ISO-8859. À l'époque, si vous vouliez obtenir un standard international et que vous viviez aux États-Unis, vous l'avez acheté à L'American National Standards Institute, L'ANSI, qui réédition de normes internationales avec leur propre image de marque et leur propre nombre (c'est parce que le gouvernement américain veut se conformer aux normes américaines, pas aux normes internationales). Donc la copie de Microsoft de ISO-8859 dit "ANSI" sur la couverture. Et parce que Microsoft n'était pas très habitué aux standards à cette époque, ils ne se rendaient pas compte que L'ANSI publiait aussi beaucoup d'autres standards. Ils se sont donc référés aux normes de la famille ISO-8859 (et aux variantes qu'ils ont inventées, parce qu'elles n'étaient pas comprendre les normes en ces jours) par le nom sur la couverture, "ANSI", et il a trouvé son chemin dans la documentation utilisateur de Microsoft et donc dans la communauté des utilisateurs. C'était il y a environ 30 ans, mais vous entendez encore parfois le nom aujourd'hui.

10
répondu Michael Kay 2014-09-22 08:41:58

essentiellement "ANSI" se réfère à l'ancienne page codepage sur 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 supérieurs varient, cependant.

cependant, L'ANSI ne pas signifie automatiquement CP1252 ou Latin 1.

en dépit de toute confusion, vous devriez simplement éviter ces problèmes de nos jours et utiliser Unicode.

3
répondu Joey 2009-03-31 17:02:49

juste au cas où votre PC n'est pas un PC "Western" et vous ne savez pas quelle page de code est utilisée, Vous pouvez jeter un oeil à cette page: National Language Support (NLS) référence API

[Microsoft a supprimé cette référence, prenez-la sous forme de web-archive National Language Support (NLS) API Reference

ou vous pouvez interroger votre 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:\>
2
répondu Wernfried Domscheit 2018-03-15 10:05:15

Lorsqu'on utilise des caractères à un octet, le format ASCII définit les 127 premiers caractères. Les caractères étendus de 128-255 sont définis par diverses pages de code ANSI pour permettre un support limité pour d'autres langues. Pour donner un sens à une chaîne encodée ANSI, vous devez savoir quelle page de code elle utilise.

1
répondu Eric Petroelje 2009-03-31 16:33:35

je me souviens quand le texte" ANSI " faisait référence aux pseudo codes d'échappement VT-100 utilisables en DOS par le biais de L'ANSI.Pilote SYS pour modifier le flux de texte en continu.... Probablement pas ce à quoi vous faites référence mais si c'est http://en.wikipedia.org/wiki/ANSI_escape_code

1
répondu jmucchiello 2009-03-31 17:10:22

ANSI (Alias Windows-1252/WinLatin1) est un codage de caractères de l'alphabet Latin, assez similaire à ISO-8859-1 . Vous pouvez jeter un oeil à il sur Wikipedia .

-4
répondu moff 2009-03-31 16:32:21