web-dev-qa-db-fra.com

Qu'est-ce que le codage "ANSI_X3.4-1968"?

Voir la sortie suivante sur mon système:

[STEP 101] # python3 -c 'import sys; print(sys.stdout.encoding)'
ANSI_X3.4-1968
[STEP 102] #
[STEP 103] # locale
LANG=C
LANGUAGE=en_US:en
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
[STEP 104] #

Googlé mais trouvé très peu d'informations à ce sujet. Même Python Le Python (v3.5.2) ne le mentionne pas. Une norme internationale le définit-elle?


(Copié la référence faisant autorité du commentaire de la réponse acceptée: Jeux de caractères )

10
pynexj

Ceci est un autre nom pour USAS X3.4-1968, une révision de ASCII qui se distingue par:

  • la première révision pour permettre à un saut de ligne (LF) de se produire seul (c'est-à-dire non précédé ou suivi d'un retour chariot (CR)).

  • la révision qui a introduit le nom commun de (US-)ASCII.

Il s'agit essentiellement de ASCII comme nous le pensons, bien qu'il y ait eu deux révisions mineures qui l'ont suivi.

11
donkopotamus

Si vous êtes curieux d'où cela vient en c python, la valeur est calculée à partir du module de paramètres régionaux en utilisant langinfo.

Voici un petit programme C qui montre comment le _locale le module détermine ces informations:

#include <langinfo.h>
#include <locale.h>
#include <stdio.h>

int main () {
    setlocale(LC_ALL, "");
    printf("%s\n", nl_langinfo(CODESET));
    return 0;
}

Et quelques exemples de sortie:

$ LANG= ./a.out 
ANSI_X3.4-1968
$ LANG=en_US.UTF-8 ./a.out 
UTF-8

python normalise le nom ansi en ascii (ou US-ASCII)

4
Anthony Sottile