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 )
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.
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
)