web-dev-qa-db-ja.com

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

Googleで検索しましたが、それに関する情報はほとんど見つかりませんでした。 PythonのThe Python Library Reference(v3.5.2)では言及されていません。国際標準で定義されていますか?


(承認された回答のコメントから信頼できる参照をコピーしました: Character Sets

10
pynexj

これはASCIIのリビジョンであるUSAS X3.4-1968の別の名前であり、次の点で区別されます。

  • 改行(LF)が単独で発生することを許可する最初のリビジョン(つまり、キャリッジリターン(CR)の前後にない)。

  • (US-)ASCIIの共通名を導入したリビジョン。

これは基本的にASCIIですが、それに続いて2つのマイナーリビジョンがありました。

11
donkopotamus

c pythonのどこに由来するのか興味がある場合、値はlanginfo

以下に、_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

pythonは、ANSI名をascii(またはUS-ASCII

4
Anthony Sottile