[22] [DFN[ASCII]] は、かつて[[米国]]で広く用いられた[[符号化文字集合]]でした。

* RFC 20

[3] [DFN[RFC 20]] は、 [[USAS X3, 4-1968]] を添付しています。

[REFS[
- [4] [CITE@en[RFC 0020 - ASCII format for Network Interchange]] ([TIME[2011-05-08 17:22:46 +09:00]] 版) <https://tools.ietf.org/html/rfc0020>
-
[46] 
[CITE@ja[rfc20.pdf]], [TIME[2015-02-05T22:59:10.000Z]], [TIME[2025-07-08T04:16:17.496Z]] <https://www.rfc-editor.org/rfc/rfc20.pdf>

]REFS]

[5] [[RFC 20]] 自体は、
[[ASCII]] は[[7ビット符号]]ですが、[[最上位ビット]]を常に0とした[[8ビット符号]]として使用することを提案しています。

[18] [[IETF]] 等には、無料で入手できない本来の [[US-ASCII]] ではなく
[[RFC 20]] を参照するのが望ましいと強硬に主張する人がいます。

[40] 
[[JOSE]]
は
[DFN[[CODE[ASCII(STRING)]]]]
という[[関数]]風の記法で仕様を記述しています。
[SRC[>>30, >>39, >>41, >>29]]

-
[FIG(quote)[
[FIGCAPTION[
[30] [CITE@en[RFC 7515 - JSON Web Signature (JWS)]]
([TIME[2020-03-29 16:13:43 +09:00]])
<https://tools.ietf.org/html/rfc7515#section-1.1>
]FIGCAPTION]

> ASCII(STRING) denotes the octets of the ASCII '''['''RFC20''']''' representation
>    of STRING, where STRING is a sequence of zero or more ASCII
>    characters.

]FIG]
-
[39] 
[CITE@en[[[RFC 7516]] - JSON Web Encryption (JWE)]], [TIME[2022-11-23T02:47:58.000Z]] <https://datatracker.ietf.org/doc/html/rfc7516#section-1.1>
-
[41] 
[CITE@en[[[RFC 7517]]: JSON Web Key (JWK)]], [TIME[2022-11-25T08:33:34.000Z]] <https://www.rfc-editor.org/rfc/rfc7517.html#section-1.1>
-
[FIG(quote)[
[FIGCAPTION[
[29] [CITE@en[RFC 7518 - JSON Web Algorithms (JWA)]]
([TIME[2019-11-27 04:11:14 +09:00]])
<https://tools.ietf.org/html/rfc7518#section-1.1>
]FIGCAPTION]

> ASCII(STRING) denotes the octets of the ASCII '''['''RFC20''']''' representation
>    of STRING, where STRING is a sequence of zero or more ASCII
>    characters.

]FIG]

[43] 
[CITE@en[Correct classification of RFC 20 (ASCII format) to Internet Standard]], [TIME[2024-06-06T05:16:37.000Z]] <https://datatracker.ietf.org/doc/status-change-rfc20-ascii-format-to-standard/>


[6] [CITE@en[Rich Salz on Twitter: "Better late than never: IESG is going to declare RFC 20 standards-track. http://t.co/fn0SiyMx0m Yes, 20. 7-bit ASCII."]]
( ([TIME[2014-12-10 11:06:10 +09:00]] 版))
<https://twitter.com/RichSalz/status/542040814093086721>

[7] [CITE@en-US[Mail Archive Sign in STD 80, RFC 20 on ASCII format for network interchange]]
([TIME[2015-01-29 17:58:51 +09:00]] 版)
<https://mailarchive.ietf.org/arch/msg/ietf-announce/rlIsY8yvvKhbkbkuk2mcQ-ylSNw>


[45] 
存在が忘れられていた [[RFC 20]] が「発見」されて[[インターネット標準]]になってしまうサクセス(?)ストーリー。
[[標準化団体]]行政史という観点でも実に面白い。


[47] 
それまで電子配布はされていなかったのが、
[TIME[西暦1999(平成11)年9月][1999-09]]に[[平文]]版が配布されるように。

[48] 
当時は[[平文]]に書き起こされたものだけだったはず。その後いつのまにか紙原本をスキャンした 
PDF 版が配布されるように。
>>46 の日付は[TIME[西暦2015(平成27)年][2015]]で、その年かそれ以前の数年くらいのタイミングか。

[50] 
PDF 版を見るまでわからなかったが[[PDF]]版には手書きの正誤指示 (かなり重要) があって、
[[平文]]版は何の注釈もなく修正後本文になっている。


[49] 
よく見ると原文の附属書は [[RFC]] 版から省略されている。

[51] 
ANSI 規格には [CH[#]] を[[応用]]が [CH[£]] にしてもよい、みたいな規定 ([SEE[ [[ISO/IEC 646の版]] ]]) も入っていて、
[[インターネット]]は「応用」としてそこちゃんと決めないといけないんじゃないんかい、
何も考えずに [[RFC 20]] を参照だけしている [[RFC]] はどうすんの、と思ったりも。


* TELNET ASCII

[24] 
[FIG(short list)[
- [[NVT ASCII]]
- [[拡張ASCII]]
]FIG]

* POSIX Portable Character Set

[SEE[ [[Portable Character Set]] ]]

* US-ASCII (IANA charset)


[REFS[
- [11] [CITE@en[RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types]] ([TIME[2015-03-22 13:14:46 +09:00]] 版) <http://tools.ietf.org/html/rfc2046#section-4.1.2>
]REFS]



** RFC 2046 (MIME) 4.1.2 の定義

[1]
- [[MIME]] [[charset]] [CODE(charset)[US-ASCII]] は 
[[ANSI X3.4]]‐1986 で定義される[[文字集合]]です。
- [[ISO/IEC 646]]:1991 の [[IRV]] と同じ物です。

[[ISO/IEC 646の版]]や [[ISO/IEC 2022]] 
の[[符号拡張法]]を使う場合は、
適切な札付けする必要があります。 (ということなので、つまり
[CODE(charset)[US-ASCII]] で符号拡張法は使えません。)

[12] [[US-ASCII]] が表すものには歴史的に混乱と曖昧性がありましたが、
[[MIME]] の [CODE(charset)@en[[[US-ASCII]]]] は任意の[[7ビット]]文字コードではなく、
[[ANSI X4.3-1986]] [[US-ASCII]] [[符号化文字集合]]を指しています。
[[IRV]] 以外の[[ISO/IEC 646の版]]や[[符号拡張法]]、[[右半面]]や[[多バイト]]を使うものは、
[CODE(charset)@en[[[US-ASCII]]]] ではありません。 [SRC[>>11]]

[13] [[charset]] 名 [CODE[[[ASCII]]]] は予約されており、いかなる目的でも使ってはなりません
[SRC[>>11]]。

;; [14] しかし [[IANA登録簿]]では [CODE(charset)@en[[[US-ASCII]]]] の別名となっているわけですが。。。

[15] MIME で定義されていたり de facto の意味を持つとされている[[制御文字]]は、 [CODE(char)[[[CRLF]]]], [CODE(char)[[[FF]]]], 
[CODE(char)[[[TAB]]]] ([CODE(char)[[[HT]]]]) だけです。
他の [[CL]] の制御文字と [CODE(charname)[[[DEL]]]] は、
[CODE(MIME)[[[text/plain]]]] 以外の媒体型でその用法を規定している場合及び[[情報交換の当事者間の合意]]がある場合に限って意味を持ちます。
[SRC[>>11]]

** text/* の charset の既定値

[2] MIME の規定によれば、 [CODE(MIME)[[[text/[VAR[*]]]]]]
媒体型の [CODE(MIME)[[[charset]]]] 引数が省略された時の既定値は
[CODE(charset)[US-ASCII]] です。

これは、 MIME を作った時に、米国のインターネットで普通に利用されていたものをそのまま既定値にしただけです。

(そしてそれは [[RFC 822]] の規定に整合していますが、
当時の慣習には必ずしも一致しません。欧州や亜細亜では
8ビット化や [CODE(char)[[[ESC]]]] による[[符号拡張]]を使う、
RFC 822 の拡張版 [WEAK[(厳密に言うと、 RFC 822 は [CODE(charset)[ESC]] による符号拡張を使うとも使わないとも言っていないので拡張とは呼ばないかもしれません。)]] が使われていました。)

* 文字集合としての ASCII

[16] 「[[ASCII]]」というとき、本来の[[符号化文字集合]]としての [[ASCII]]
ではなく、 [[ASCII]] で規定された94文字ないし128文字の[[文字集合]]を指していることもあります。

[17] 例えば、 [[Unicode]] の [CODE(char)[[[U+0000]]]]-[CODE(char)[[[U+007F]]]]、
あるいは [CODE(char)[[[U+0020]]]]-[CODE(char)[[[U+007E]]]] のことを、
[[ASCII文字]]と言うことがあります。

;; [25] この意味での [[ASCII]] については、 [[ASCII文字]]を参照。

[23] [[ASCIIアート]] ([[AA]]) のように、 [[ASCII]] が本来の意味を離れて[[文字]]一般を表していることすらあります。

* Web における ASCII

[19] [[符号化ラベル]] [CODE[[[ascii]]]] や [CODE[[[us-ascii]]]] は、
(その[[超集合]]である) [CODE[[[windows-1252]]]] の別名として解釈されます。

[SEE[ [[windows-1252]] ]]

[HISTORY[
[20] そもそも[[7ビット符号]]である [[US-ASCII]] が[[8ビット符号]]として使われた時、
[[右半面]]は ([[著者]]は使ってはいけないのですが、受信した実装が)
どう解釈するべきか明確でありませんでした。そのため実装は様々で、
中には[[最上位ビット]]を無視する ([[セキュリティー]]的に問題ある)
ものもありました。
]HISTORY]

[28] [[ASCII符号化]]と[[ASCII復号]]は、[[仕様書]]上の[[アルゴリズム]]として定義されています。
単独の[[文字コード]]としての利用はできません。


* ASCII 互換性

[55] 
[[ASCII互換]]なる概念が使われることがあります。その意味は色々です。
[SEE[ [[ASCII互換]] ]]

* 実利用例

[52] [CITE[null]], [TIME[2012-12-19T19:33:13.000Z]], [TIME[2025-10-21T06:15:56.275Z]] <https://www.anc.org/MASC/texts/175841.txt>

[CODE[ANSI_X3.4-1968]]


[53] [CITE[Revised KBO section]], [TIME[2003-08-25T17:32:23.000Z]], [TIME[2025-10-21T06:16:18.495Z]] <https://www.astro.princeton.edu/~dss/LSST/lsst-general/msg.167.html>

>
[PRE[
Content-Disposition: attachment; filename=lsstkbo3.tex
Content-Transfer-Encoding: quoted-printable
Content-Type: text/x-tex; name=lsstkbo3.tex; charset=ANSI_X3.4-1968
]PRE]

[54] [CITE['''['''Cmake''']''' Shared library versioning]], [TIME[2003-08-29T15:13:08.000Z]], [TIME[2025-10-21T06:17:15.228Z]] <https://cmake.org/pipermail/cmake/2003-June/003923.html>

>
[PRE[
Content-Disposition: attachment; filename=cmake_soversion.diff
Content-Type: text/x-patch; name=cmake_soversion.diff; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: 7bit
]PRE]


* 関連

[42] [[ASCII帝国主義]]

** ASCII の模倣

[FIG(short list)[ [44] いろんな [[ASCII]]

- [[ArmSCII]]
- [[ASCII]]
- [[CROASCII]]
- [[GSCII]]
- [[GeoSCII]]
- [[GeorgianSCII]]
- [[ISCII]]
- [[JISCII]]
- [[KSCII]]
- [[NSCII]]
- [[PASCII]]
- [[PETSCII]]
- [[TSCII]]
- [[VSCII]]
- [[VISCII]]
- [[YUSCII]]

]FIG]

* メモ



[8] ([TIME[2014-10-28 14:57:07 +09:00]] 版)
<http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/Ecma%20philosophy%20on%20codes.pdf>

[9] ([TIME[2014-10-28 16:25:56 +09:00]] 版)
<http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-7,%201st%20Edition,%20April%201965.pdf>

[10] ([TIME[2015-03-03 13:01:37 +09:00]] 版)
<http://trafficways.org/ascii/ascii.pdf>

[FIG(quote)[
[FIGCAPTION[
[21] [CITE@en[RFC 959 - File Transfer Protocol]]
( ([TIME[2016-06-05 16:18:06 +09:00]]))
<https://tools.ietf.org/html/rfc959#page-3>
]FIGCAPTION]

> ASCII
>          The ASCII character set is as defined in the ARPA-Internet
>          Protocol Handbook.  In FTP, ASCII characters are defined to be
>          the lower half of an eight-bit code set (i.e., the most
>          significant bit is zero).
> 

]FIG]


[26] [CITE@en[Improve representation guidelines for bytes and code points]]
([[annevk]]著, [TIME[2017-03-23 22:25:17 +09:00]])
<https://github.com/whatwg/infra/commit/543b2c48b6e1babb50d77e5a3ba5b86be8b56eb9>



[FIG(quote)[
[FIGCAPTION[
[31] [CITE@en[RFC 42 - Message Data Types]]
([TIME[2021-01-24T08:11:18.000Z]], [TIME[2021-03-10T04:59:23.963Z]])
<https://tools.ietf.org/html/rfc42>
]FIGCAPTION]

>         2.     U.S. Ascii
>         3.     EBCDIC
>         4.     Mod 33 TTY Ascii
> 

]FIG]


[FIG(quote)[
[FIGCAPTION[
[32] [CITE@en[RFC 80 - Protocols and Data Formats]]
([TIME[2021-01-31T16:13:15.000Z]], [TIME[2021-03-10T05:02:05.722Z]])
<https://tools.ietf.org/html/rfc80>
]FIGCAPTION]

>          1)    Character code translation (viz., decimal, octal,
>                hexidecimal, 8 bit ASCII, 7 bit ASCII, EBCDIC, and
>                binary).

]FIG]


[FIG(quote)[
[FIGCAPTION[
[33] [CITE@en[RFC 1090 - SMTP on X.25]]
([TIME[2021-02-01T01:04:16.000Z]], [TIME[2021-03-12T08:51:07.587Z]])
<https://tools.ietf.org/html/rfc1090#section-8>
]FIGCAPTION]

> The character code used on X.25 is the full ASCII-8 code, with no
>    escapes or modifications. 

]FIG]


[FIG(quote)[
[FIGCAPTION[
[34] [CITE@en[RFC 1154 - Encoding header field for internet messages]]
([TIME[2021-01-24T13:41:10.000Z]], [TIME[2021-03-13T08:01:54.039Z]])
<https://tools.ietf.org/html/rfc1154#section-4.1>
]FIGCAPTION]

>  On some transport services, only the 7 bit subset of ASCII can be
>    used.  Where full 8 bit transparency is available, the text is
>    assumed to be ISO 8859-1 '''['''3''']''' (ASCII-8).

]FIG]


[FIG(quote)[
[FIGCAPTION[
[35] [CITE@en[RFC 1314 - A File Format for the Exchange of Images in the Internet]]
([TIME[2021-01-31T10:24:09.000Z]], [TIME[2021-03-13T09:39:32.003Z]])
<https://tools.ietf.org/html/rfc1314#page-11>
]FIGCAPTION]

> 
>         2 = ASCII       8-bit ASCII terminated with a null (variable
>                         length)

]FIG]


[36] [CITE[Federal Information Processing Standards Publication: code for information interchange - fipspub1-2-1977.pdf]], [TIME[2017-12-04T14:22:25.000Z]], [TIME[2022-03-23T03:43:20.364Z]] <https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub1-2-1977.pdf>

[37] [CITE[Federal Information Processing Standards Publication: for bit sequencing of the American national standard code for information interchange in serial-by-bit data transmission - fipspub16-1.pdf]], [TIME[2017-12-04T17:01:31.000Z]], [TIME[2022-03-23T03:44:25.205Z]] <https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub16-1.pdf>




[38] [CITE[Federal Information Processing Standards Publication: subsets of the standard code for information interchange - fipspub15.pdf]], [TIME[2017-12-05T12:26:05.000Z]], [TIME[2022-03-23T03:52:16.238Z]] <https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub15.pdf>


[27] 
[[ANSIコードページ]]に対する[[OEMコードページ]]のことを [[ASCII]] と俗に言うらしいです。

