什么是 "ANSI_X3.4-1968" 编码?
What's "ANSI_X3.4-1968" encoding?
在我的系统上查看以下输出:
[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 的 The Python Library Reference (v3.5.2) 也没有提到它。有没有国际标准定义它?
(从已接受答案的评论中复制了权威参考:Character Sets)
这是 USAS X3.4-1968
的另一个名称,ASCII
的修订版,其区别在于:
第一次修订允许换行 (LF
) 自行发生(即前面或后面没有回车符 return (CR
)).
引入(US-)ASCII
.
通用名称的修订版
这基本上就是我们所想的ASCII
,尽管随后进行了两次小的修改。
如果你想知道它从哪里来 cpython,这个值是从 locale 模块计算出来的使用 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
python 将 ansi 名称规范化为 ascii
(或 US-ASCII
)
在我的系统上查看以下输出:
[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 的 The Python Library Reference (v3.5.2) 也没有提到它。有没有国际标准定义它?
(从已接受答案的评论中复制了权威参考:Character Sets)
这是 USAS X3.4-1968
的另一个名称,ASCII
的修订版,其区别在于:
第一次修订允许换行 (
LF
) 自行发生(即前面或后面没有回车符 return (CR
)).引入
(US-)ASCII
. 通用名称的修订版
这基本上就是我们所想的ASCII
,尽管随后进行了两次小的修改。
如果你想知道它从哪里来 cpython,这个值是从 locale 模块计算出来的使用 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
python 将 ansi 名称规范化为 ascii
(或 US-ASCII
)