Что такое кодировка "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
)