什么是“ ANSI_X3.4-1968”编码?

问题描述 投票:13回答:2

请参阅系统上的以下输出:

[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的Python库参考(v3.5.2)也没有提及它。有国际标准定义吗?


(从接受的答案的注释中复制权威参考:Character Sets

python python-3.x encoding character-encoding python-unicode
2个回答
15
投票

[这是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

python将ansi名称标准化为ascii(或US-ASCII


5
投票

如果您想知道它在c

© www.soinside.com 2019 - 2024. All rights reserved.