Что такое кодировка "ANSI_X3.4-1968"?

Смотрите следующий вывод в моей системе:

[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] #

Гуглил, но нашел очень мало информации об этом. Даже Python's Python Library Reference (v3.5.2) не упоминает об этом. Любой международный стандарт определяет это?


(Скопировал авторитетную ссылку из комментария принятого ответа: Наборы символов)

2 ответа

Решение

Это другое имя для USAS X3.4-1968пересмотр ASCII это отличается тем, что:

  • первая ревизия, чтобы разрешить перевод строки (LF) происходить самостоятельно (т.е. не предшествовать или не сопровождаться возвращением каррайга (CR)).

  • пересмотр, который ввел общее название (US-)ASCII,

Это в основном ASCII как мы думаем, хотя за этим последовали две незначительные ревизии.

Если вам интересно, откуда он берется в C Python, значение вычисляется из модуля локали с помощью langinfo,

Вот крошечная C-программа, которая демонстрирует, как _locale Модуль определяет эту информацию:

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

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

И некоторые примеры вывода:

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

питон нормализует имя ANSI ascii (или же US-ASCII)

Другие вопросы по тегам