ASCII ( / ˈ æ s k i / ASS -kee)、[3]:6 American Standard Code for Information Interchangeの略称で95(英語中心)印字可能と33の制御文字、合計128のコードポイント文字エンコード。使用可能な句読点のセットは、コンピュータ言語とテキストマークアップの構文に大きな影響を与えました。ASCIIは、現代のコンピュータで使用される文字セットの設計に大きな影響を与えました。たとえば、UnicodeはASCIIと同じです。

ASCIIは各コードポイントを0から127までの値としてエンコードし、7ビットの 整数として保存できます。[4] 95個のコードポイントは印刷可能で、数字0から9、小文字aからz、大文字AからZ、そして一般的に使用される句読点記号が含まれます。例えば、文字は105( 10進数i)で表されます。また、ASCIIはテレタイプ機器に由来する33個の非印刷制御コードを規定していますが、そのほとんどは現在では廃止されています。[5]現在でも一般的に使用されている制御文字には、キャリッジリターンラインフィードタブなどがあります。

ASCIIには分音記号付きの文字のコードポイントがないため、 résuméjalapeñoRenéといった用語や名前を直接サポートしていません。ただし、ハードウェアとソフトウェアのサポート状況によっては、文字をバックティック(`)またはチルダ(~) で上書きすることで、一部の分音記号をレンダリングできます。

Internet Assigned Numbers Authority (IANA)は、この文字エンコーディングをUS-ASCIIという名前で呼んでいます[2]

ASCIIはIEEEのマイルストーンの一つです[6]

歴史

ASCII は、以前の電信コードから部分的に開発された7ビットの テレプリンターコードの標準化です

ASCII規格の作業は、1961年5月にIBMのエンジニアであるボブ・ベマーが米国規格協会(ASA)(現在の米国規格協会またはANSI)のX3.2小委員会に提案を提出したことから始まりました。[7]規格の初版は1963年に発行され、[8]テレタイプモデル33の導入と同時期に発行されました。その後、1967年に大幅な改訂が行われ、[9] [10]、1986年までさらに数回の改訂が行われました。[11]以前のBaudotなどの電信コードとは対照的に、ASCIIは照合(特にリストのアルファベット順ソート)を容易にするために順序付けされ、テレプリンター以外のデバイス用の制御機能も追加されました。[11]

ASCII (1963)。同等のコントロールが存在する場合は、そのコントロールの図が表示され、存在しない場合は灰色のドットで表示されます。

ASCIIは、アメリカ規格協会(ASA)のX3委員会(X3委員会)の支援の下、そのX3.2(後にX3L2)小委員会、そしてさらにその小委員会のX3.2.4ワーキンググループ(現在のINCITS)によって開発されました。ASAは後にアメリカ合衆国規格協会(USASI)[3] : 211 となり、最終的にはアメリカ国家規格協会(ANSI)となりました

他の特殊文字と制御コードが埋め込まれて、ASCIIはASA X3.4-1963として公開されましたが、[8] [12] 28のコード位置は意味が割り当てられておらず、将来の標準化のために予約されており、1つの未割り当ての制御コードが残されました。[3] :66、245 当時、小文字のアルファベットよりも制御文字を増やすべきかどうかについて議論がありました。[3] :435 この優柔不断な態度は長くは続きませんでした。1963年5月、CCITTの新電信アルファベット作業部会は、小文字をスティック[a] [13] 6と7に割り当てることを提案し、[14]国際標準化機構TC 97 SC 2は10月に、この変更を標準案に組み込むことを投票で決定しました。[15] X3.2.4タスクグループは、1963年5月の会議でASCIIへの変更を承認しました。[16]小文字を[a] [13] 6と7に配置すると、文字のビットパターンが大文字と1ビット異なり、大文字と小文字を区別しない文字マッチングとキーボードとプリンターの構造が簡素化されました。

X3委員会は他にも変更を加えました。括弧縦棒の文字が追加されました。[17]いくつかの制御文字の名前が変更され、SOMはSOHになりました。他の文字は移動または削除され、RUは削除されました。[3] : 247–248  ASCIIはその後、USAS X3.4-1967、[9] [18]、USAS X3.4-1968、[19] ANSI X3.4-1977、そして最終的にANSI X3.4-1986へと更新されました。[11] [20]

ネットワーク交換のためのASCII形式の使用は1969年に説明されました。[21]この文書は2015年に正式にインターネット標準に昇格されました。[22]

改訂

  • ASA X3.4-1963 [3] [8] [18] [20]
  • ASA X3.4-1965(承認されたが公表されなかったが、IBM 2260および2265ディスプレイステーションとIBM 2848ディスプレイコントロールで使用された)[3] :423、425–428、435–439  [23] [18] [20]
  • USAS X3.4-1967 [3] [9] [20]
  • USAS X3.4-1968 [3] [19] [20]
  • ANSI X3.4-1977 [20]
  • ANSI X3.4-1986 [11] [20]
  • ANSI X3.4-1986 (R1992)
  • ANSI X3.4-1986 (R1997)
  • ANSI INCITS 4-1986 (R2002) [24]
  • ANSI INCITS 4-1986 (R2007) [25]
  • INCITS 4-1986 (R2012) [26]
  • INCITS 4-1986 (R2017) [27]
  • INCITS 4-1986 (R2022) [28]

X3.15規格において、X3委員会はASCIIデータの伝送方法(最下位ビットを先頭とする)[3] : 249–253  [29]と、パンチ穴付きテープへの記録方法についても検討しました。彼らは磁気テープ用の9トラック規格を提案し、パンチカードのいくつかのフォーマットへの対応も試みました

設計上の考慮事項

ビット幅

X3.2 小委員会は、初期のテレプリンター符号化システムに基づいて ASCII を設計しました。他の文字符号化と同様に、ASCII はデジタル ビット パターンと文字シンボル (つまり、書記素制御文字) との対応を指定します。これにより、デジタルデバイスは互いに通信し、書き言葉などの文字指向の情報を処理、格納、通信できます。 ASCII が開発される前に使用されていた符号化には、26 のアルファベット文字、10 の数字、11 ~ 25 の特殊グラフィック記号が含まれていました。これらすべて、および1932 年の国際電信電話諮問委員会(CCITT)の国際電信アルファベット No. 2 (ITA2) 標準、[30] [31] FIELDATA (1956 [引用必要] )、および初期のEBCDIC (1963) と互換性のある制御文字を含めるには、ASCII には 64 を超えるコードが必要でした。

ITA2は、エミール・ボードが1870年に発明し、1874年に特許を取得した5ビットの電信コードであるボードコードに基づいていました。[31]

委員会は、 ITA2のようなシフト機能の可能性について議論しました。これにより、64以上のコードを6ビットコードで表現できるようになります。シフトコードでは、一部の文字コードが後続の文字コードの選択肢を決定します。これによりコンパクトな符号化が可能になりますが、シフトコードの伝送エラーにより、伝送データの長い部分が判読不能になることが多いため、データ伝送の信頼性は低くなります。標準化委員会はシフトを採用しないことを決定し、ASCIIでは少なくとも7ビットコードが必要となりました。[3] : 215 §13.6, 236 §4 

委員会は8ビット符号を検討した。8ビット(オクテット)であれば、2つの4ビットパターンで2つの数字を2進化10進数で効率的に符号化できるためである。しかし、7ビットで十分な場合、すべてのデータ伝送で8ビットの送信が必要となる。委員会は、データ伝送コストを最小限に抑えるため、7ビット符号の使用を決定した。当時のミシン目付きテープは1つの位置に8ビットを記録できたため、必要に応じてエラーチェック用のパリティビットを追加することも可能であった。[3] : 217 §c, 236 §5 パリティチェックを使用しない8ビットマシン(ネイティブデータ型がオクテット)では、通常、8番目のビットを0に設定していた。[32]

内部組織

コード自体は、識別を容易にするため、ほとんどの制御コードとすべてのグラフィック コードが一緒になるようにパターン化されました。最初の 2 つのいわゆるASCII スティック[a] [13] (32 の位置) は、制御文字用に予約されていました。[3] : 220, 236 8, 9) ソートを容易にするため、 「スペース」文字はグラフィックの前に置く必要があったため、 16 進数で 20 の位置になりました。[3] : 237 §10 同じ理由で、区切り文字としてよく使用される多くの特殊記号は数字の前に置かれました。委員会は、大文字の64 文字アルファベットをサポートすることが重要であると判断し、 DEC SIXBITコード (1963)で行われたように、ASCII を使いやすい 64 文字のグラフィック コード セットに簡単に縮小できるようにパターン化することにしまし[3] : 228, 237 §14 小文字やその他のグラフィックスのオプションを利用できるように、特殊コードと数字コードは文字の前に配置され、文字A は、対応する英国規格の草案と一致するように16進数の41 番目の位置に配置されました。 [3] : 238 §18 数字 0 ~ 9 には 011 がプレフィックスとして付けられますが、残りの4 ビットは2 進数のそれぞれの値に対応しており、2 進化 10 進数による変換は簡単です (たとえば、5 は 011 0101にエンコードされ、2 進数では 5 は0101になります)。

英数字以外の文字の多くは、タイプライターのシフト位置に対応するように配置されていました。重要な微妙な点は、これらが電気タイプライターではなく、機械式タイプライターに基づいていたことです。[33]機械式タイプライターは、シフトキーを備えた最初のタイプライターであるレミントンNo.2 (1878)によって設定された事実上の標準に準拠し、 のシフトされた値はでした。初期のタイプライターは01 を 省略し、代わりにO (大文字のo ) とl (小文字のL ) を使用していましたが、0 と 1 が一般的になるにつれて、と のペアが標準になりました。したがって、ASCIIでは は2番目のスティック[a] [13]の位置1〜5に配置され、隣接するスティックの数字1〜5に対応します。[a] [13]ただし、 0に対応する場所がスペース文字に使用されているため、括弧は90に対応できませんでした。これは、 6から(アンダースコア)を削除し、残りの文字をシフトすることで対応されました。これは、 89に括弧を配置する多くのヨーロッパのタイプライターに対応していました。タイプライターとのこの矛盾は、ビットペアキーボード、特にテレタイプモデル33につながり、従来の機械式タイプライターとは異なり、ASCIIに対応する左シフトレイアウトを採用しました。 23456789-"#$%_&'()1!0)!"#$%_

電気タイプライター、特にIBM Selectric (1961) は多少異なるレイアウトを使用していましたが、これはIBM PC (1981)、特にModel M (1984)以降、コンピューターの事実上の標準となっています。そのため、現代のキーボードの記号のシフト値は、それ以前のキーボードほど ASCII テーブルと密接には対応していません。 このペアも No. 2 に遡り、一部のキーボードで使用されていました (No. 2 を含むその他のキーボードでは、 (カンマ) または(ピリオド)はシフトしないため、シフト解除せずに大文字で使用できます)。 ただし、ASCII ではこのペア (No. 2 に遡る) を分割し、数学記号 (さまざまな規則、一般的に) を に再配置しました/?,< .>,.;:-* =+:* ;+ -=

当時一般的だったタイプライター文字の中には、特に は含まれていなかった½ ¼ ¢が、 は^ ` ~ 国際用および数学用として、単純な線文字(一般的な に加えて)< >と共に、分音記号として含まれていた@記号はヨーロッパ大陸では使用されておらず、委員会はフランス語版ではアクセント付きのÀに置き換えられると予想したため、 @は16進数で40番目の位置、文字Aの直前に配置された。 [3] : 243 \ |/

データ伝送に不可欠と考えられていた制御コードは、メッセージ開始(SOM)、アドレス終了(EOA)、メッセージ終了(EOM)、伝送終了(EOT)、"who are you?"(WRU)、"are you?"(RU)、予約デバイス制御(DC0)、同期アイドル(SYNC)、および確認応答(ACK)でした。これらのコードは、ビットパターン間のハミング距離が最大になるように配置されました。[3] : 243–245 

文字順

ASCIIコード順はASCIIベティカル順とも呼ばれます。[34]データの 照合は、「標準的な」アルファベット順(照合シーケンス)ではなく、この順序で行われることがあります。ASCII順の主な逸脱は以下のとおりです。

  • 大文字はすべて小文字の前に来ます。たとえば、「Z」は「a」の前に来ます。
  • 数字と多くの句読点は文字の前に来る

中間命令は、ASCII 値を比較する前に大文字を小文字に変換します。

文字セット

文字グループ

制御文字

32 個の制御文字、スペース、削除文字に割り当てられた初期の記号。( ISO 2047、 MIL-STD-188-100、1972)

ASCIIは、最初の32個のコードポイント(10進数で0~31)と最後の1個(10進数で127)を制御文字用に予約しています。これらは、周辺機器(プリンターなど)を制御したり、磁気テープなどに保存されているデータストリームに関するメタ情報を提供したりするためのコードです。その名前にもかかわらず、これらのコードポイントは印刷可能な文字を表すものではありません(つまり、文字ではなく信号です)。デバッグのために、これらのコードポイントには「プレースホルダー」シンボル(ISO 2047やその前身で使用されているものなど)が割り当てられています。

例えば、文字0x0Aは「改行」機能(プリンタの用紙送り)を表し、文字8は「バックスペース」を表します。RFC 2822では、キャリッジリターン 、改行、または空白を含まない制御文字を非空白制御文字と呼んでいます。[35]基本的な行指向の書式設定を規定する制御文字を除いて、ASCIIは文書内のテキストの構造や外観を記述するためのメカニズムを定義していません。マークアップ言語、アドレスページ、文書のレイアウトと書式設定 などの他のスキームは定義されていません。

オリジナルのASCII規格では、各制御文字に短い説明フレーズのみが使用されていました。この曖昧さは、端末リンクとデータストリームで文字の使い方が若干異なるなど、意図的なものもあれば、例えば「削除」の意味が規格で明確にされていないなど、偶発的なものもありました。

これらの文字の解釈に最も影響を与えた単一のデバイスは、おそらくテレタイプ モデル 33 ASR でしょう。これは、紙テープリーダー/パンチ オプションを備えた印刷端末でした。紙テープは 1980 年代まで、磁気テープよりも安価で、いくつかの点で壊れにくいことから、長期プログラム保存用の非常に一般的な媒体でした。特に、テレタイプ モデル 33 のコード 17 (control-Q、DC1、XON とも呼ばれる)、19 (control-S、DC3、XOFF とも呼ばれる)、および 127 (削除)のマシン割り当ては、事実上の標準になりました。モデル 33 は、control-G (コード 7、BEL、操作者に音声で警告することを意味する) の説明を文字通りに受け止めていることでも有名で、ユニットには BEL 文字を受信すると鳴る実際のベルが含まれていました。 O キーのキートップにも左矢印記号 (アンダースコアの代わりにこの文字を持つ ASCII-1963 から) が表示されていたため、コード 15 (コントロール + O、シフトイン) の非準拠な使用法が「前の文字を削除」と解釈され、多くの初期のタイムシェアリング システムで採用されましたが、最終的には無視されるようになりました。

自動紙テープ読み取り装置を備えたテレタイプ33 ASRは、制御S(XOFF、送信オフの略)を受信するとテープ読み取りを停止し、制御Q(XON、送信オン)を受信するとテープ読み取りを再開しました。このいわゆるフロー制御技術は、バッファオーバーフローの兆候が見られるため送信側に送信を停止するよう警告する「ハンドシェイク」信号として、初期のコンピュータオペレーティングシステムのいくつかに採用されました。これは今日でも多くのシステムで手動出力制御技術として使用されています。一部のシステムでは、制御Sはそのままの意味を保持していますが、制御Qは出力を再開するための2番目の制御Sに置き換えられています。

33 ASRは、コントロールR(DC2)とコントロールT(DC4)を使用してテープパンチの開始と停止を行うように設定することもできます。この機能を備えた一部のユニットでは、キーキャップの文字の上にある対応する制御文字の文字はそれぞれTAPEとTAPEでした。[36]

削除とバックスペース

テレタイプはタイプヘッドを後方に移動できなかったため、キーボードにはBS(バックスペース)を送信するキーがありませんでした。代わりに、RUB OUTコード127(DEL)を送信するキーがありました。このキーの目的は、手入力された紙テープの誤りを消去することでした。オペレーターはテープパンチのボタンを押してテープを戻し、次に消しゴムで消印を押すと、すべての穴がパンチされ、誤りは無視される文字に置き換えられました。[37]テレタイプは、 Digital Equipment Corporation (DEC)の安価なコンピュータでよく使用されていました。これらのシステムは利用可能なキーを使用する必要があったため、DEL文字は前の文字を消去するキーに割り当てられていました。[38] [39]このため、DECのビデオ端末は(デフォルトで)「バックスペース」と表示されたキーに対してDEL文字を送信し、「Delete」と表示された別のキーに対してはエスケープシーケンスを送信していました。他の多くの競合端末は、バックスペースキーに対してBS文字を送信していました。

初期のUnix ttyドライバは、最近の実装とは異なり、標準的な入力処理(非常にシンプルな行エディタが利用可能な場合)において、前の文字を消去する文字として設定できるのは1つだけでした。この文字はBSまたはDELに設定できましたが、両方を設定することはできませんでした。その結果、ユーザーは使用している端末に応じて選択しなければならないという曖昧な状況が繰り返し発生しました(kshbashzshなどの行編集が可能なシェルはどちらも理解します)。どのキーもBS文字を送信しないという前提により、Ctrl+HはGNU Emacsの「help」プレフィックスコマンドなど、他の目的に使用できました[40]

逃げる

制御文字の多くは、本来の意味とは全く異なる意味が割り当てられています。例えば、「エスケープ」文字(ESC、コード27)は、元々は他の制御文字を、その意味である「エスケープシーケンス」を呼び出すのではなく、リテラルとして送信できるようにするために設計されていました。これは、URLエンコーディング、C言語文字列、その他特定の文字が予約語として意味を持つシステムで使用されている「エスケープ」と同じ意味です。時を経てこの解釈は流用され、最終的には変更されました。

現代の用法では、端末に送信されるESCは通常、コマンドシーケンスの開始を示します。コマンドシーケンスは、カーソルのアドレス指定、領域のスクロール、端末の様々なプロパティの設定/照会などに使用できます。これらは通常、ECMA-48 (1972)およびその後継規格におけるいわゆる「 ANSIエスケープコード」(多くの場合、「制御シーケンスイントロデューサ」、「CSI」、「ESC [」で始まる)の形式をとります。「初期状態にリセット」、「RIS」コマンド「 ESC c 」のように、イントロデューサを持たないエスケープシーケンスもあります[41]

対照的に、端末から読み取られるESCは、TECOviテキストエディタのように、操作や特殊モードを終了するための帯域外文字として最もよく使用されます。グラフィカルユーザーインターフェース(GUI)やウィンドウシステムでは、ESCは通常、アプリケーションに現在の操作を中止させるか、完全に終了(終了)させます。

行末

多くの制御文字に内在する曖昧性と、その歴史的な使用法が相まって、システム間で「プレーンテキスト」ファイルを転送する際に問題を引き起こしました。その最たる例は、様々なオペレーティングシステムにおける改行問題です。テレタイプ機では、テキスト行の末尾に「キャリッジリターン」(プリントヘッドを行頭に移動する)と「ラインフィード」(プリントヘッドを動かさずに用紙を1行進める)の両方を入力する必要がありました。「キャリッジリターン」という名称は、手動タイプライターにおいて、用紙を保持するキャリッジが移動する一方で、リボンを叩くタイプバーは静止していることに由来しています。用紙を次の行に移動させるには、キャリッジ全体を右に押し込む(戻す)必要がありました。

DECオペレーティングシステム(OS/8RT-11RSX-11RSTSTOPS-10など)は、コンソールデバイス(元々はテレタイプマシン)が動作するように、行末を示すために両方の文字を使用していました。いわゆる「ガラスTTY」(後にCRTまたは「ダム端末」と呼ばれるようになった)が登場した頃には、この規則は十分に確立されていたため、下位互換性のために引き続きそれに従う必要がありました。ゲイリー・キルドールがCP/Mを開発したとき、彼はDECの RT-11 オペレーティングシステムで使用されていたコマンドラインインターフェース規則のいくつかに触発されました。

1981年にPC DOSが導入されるまで、IBMはこの分野に影響力を持っていませんでした。1970年代のIBMのオペレーティングシステムはASCIIではなくEBCDICエンコーディングを採用しており、パンチカード入力とラインプリンタ出力を主眼に置いていたため、「キャリッジリターン」の概念は意味をなさなかったからです。IBMのPC DOS(マイクロソフトはMS-DOSとしても販売)は、CP/Mを大まかにベースとしていたため、この慣習を継承しました。 [42]そしてWindowsも、MS-DOSからこの慣習を継承しました。

行末を示すのに 2 つの文字が必要なことで、各文字が単独で検出されたときにその解釈方法に関して、不必要な複雑さとあいまいさが生じます。この問題を単純化するために、 Multics上のファイルを含むプレーンテキストのデータ ストリームは、行末記号としてライン フィード (LF) のみを使用しました。[43] : 357  tty ドライバーは出力時に LF から CRLF への変換を処理するので、ファイルは直接端末に印刷でき、UNIXドキュメントでは CRLF を指すために NL (改行) がよく使用されます。UnixおよびUnixシステム、Amigaシステムは、この規則を Multics から採用しました。一方、オリジナルのMacintosh OSApple DOS、およびProDOS は、行末記号としてキャリッジ リターン (CR) のみを使用していました。しかし、Apple が後にこれらの旧式のオペレーティング システムを Unix ベースのmacOS (以前は OS X と呼ばれていました) オペレーティング システムに置き換えたため、現在ではライン フィード (LF) も使用されています。Radio Shack TRS-80も行末記号として CR のみを使用していました。

ARPANETに接続されたコンピュータには、CR-LF改行コードを使用するTOPS-10やTENEXなどのオペレーティングシステム、LF改行コードを使用するMulticsなどのオペレーティングシステム、そして文字数とそれに続く行の文字数で行を表すOS/360などのオペレーティングシステムがあり、ASCIIではなくEBCDICエンコードを採用していました。TelnetプロトコルはASCIIの「ネットワーク仮想端末」(NVT)を定義し、異なる改行コードと文字セットを持つホスト間の接続を、ネットワーク経由で標準的なテキスト形式を伝送することでサポートできるようにしました。TelnetはASCIIとCR-LF改行コードを使用し、他の改行コードを使用するソフトウェアは、ローカルな改行コードとNVT間の変換を行いました。[44]ファイル転送プロトコルは、デフォルトのASCIIモードでのコマンド送信とデータ転送に、ネットワーク仮想端末の使用を含むTelnetプロトコルを採用しました。[45] [46]これにより、NVTのCR-LF行末規則を使用していないシステムでは、これらのプロトコルや、電子メールやワールドワイドウェブなどに使用される他のネットワークプロトコルの実装が複雑になります。[47] [48]

ファイル/ストリームの終わり

PDP-6 モニター[38]とその後継機である PDP-10 TOPS-10 [39]は、端末からの入力に対するファイル終了表示として control-Z (SUB) を使用していました。CP/M などの一部のオペレーティングシステムは、ファイルの長さをディスクブロック単位でのみ追跡し、ファイル内の実際のテキストの終了を示すために control-Z を使用していました。[49]これらの理由から、EOF、つまりファイルの終わりは、SUBstitute ではなく、control-Z の3 文字の頭字語として口語的に慣習的に使用されていました。テキスト終了文字 ( ETX ) はcontrol-Cとしても知られていましたが、さまざまな理由で不適切でしたが、ファイルの終了を示す制御文字として control-Z を使用することは、アルファベットの末尾の文字 Z の位置に類似しており、非常に便利なニーモニック補助として機能します。歴史的に一般的で現在でも普及している慣習では、ETX 文字規則を使用して、通常はキーボードからの入力データストリームを介してプログラムを中断して停止します。

Unix ターミナル ドライバは、データ ストリームの終了を示すために、転送終了文字 ( EOT ) (コントロール D とも呼ばれます) を使用します。

C プログラミング言語および Unix 規則では、ヌル文字はテキスト文字列を終了するために使用されます。このようなヌル終了文字列は、ASCIZ または ASCIIZ という略語で表されます。ここで、Z は「ゼロ」を表します。

コード表

制御コード表

専門的な機器では、ISO 2047グラフィックスや16 進数などの他の表現が使用される場合があります。

印刷可能な文字表

採用当時、20 16進数から7E 16進数のコードは可視文字(グリフ)の印刷を指示するため、「印刷可能文字」と呼ばれていました。これらのコードは、文字、数字、句読点、そしてその他の記号を表します。印刷可能文字は合計95文字あります。[n]

キーボードのスペースキーによって生成される単語間の空白文字は、文字コード20 (16進数)です。スペース文字は印刷されたテキストに表示されるため、目に見えるグリフを持たないという点で独特ですが、「印刷可能文字」と見なされます。ASCII標準に従って、制御文字テーブルではなく、印刷可能文字テーブルに記載されています。[3] : 223  [21]

コード 7F 16 進数は、印刷できない「削除」(DEL) 制御文字に対応し、制御文字テーブルにリストされています。

ASCIIの初期のバージョンでは、キャレットの代わりに上矢印(16進数5E )、アンダースコアの代わりに左矢印(16進数5F )が使用されていました。[8] [50]

使用法

ASCIIは1963年、アメリカ電信電話(ATEL)のTWX(TeletypeWriter eXchange)ネットワーク用の7ビットのテレタイプライターコードとして初めて商用利用されました。TWXは当初、競合会社のTelexテレタイプライターシステムでも使用されていた5ビットのITA2を採用していました。ボブ・ベマーはエスケープシーケンスなどの機能を導入しました[7]彼のイギリス人の同僚であるヒュー・マクレガー・ロスはこの研究の普及に貢献しました。ベマーによれば、「ASCIIとなるコードはヨーロッパで初めてベマー・ロスコードと呼ばれたほどでした」[51] 。ASCIIに関する広範な研究から、ベマーは「ASCIIの父」と呼ばれています。[52]

1968年3月11日、リンドン・B・ジョンソン大統領は、米国連邦政府が購入するすべてのコンピュータがASCIIをサポートすることを義務付け、次のように述べた。[53] [54] [55]

私はまた、商務長官[ルーサー・H・ホッジス]による、磁気テープおよび紙テープをコンピュータ操作に使用する際に、情報交換用標準コードを記録するための規格に関する勧告を承認しました。1969年7月1日以降に連邦政府の在庫に持ち込まれるすべてのコンピュータおよび関連機器は、これらの媒体を使用する際に、情報交換用標準コードおよび磁気テープおよび紙テープ規格で規定されたフォーマットを使用できる必要があります。

ASCIIは2007年12月までワールドワイドウェブ上で最も一般的な文字エンコーディングであったが、UTF-8エンコーディングがそれを上回った。UTF-8はASCIIと下位互換性がある。 [56] [57] [58]

変種と派生

コンピュータ技術が世界中に普及するにつれ、様々な標準化団体や企業が、ローマ字ベースのアルファベットを使用する英語以外の言語の表現を容易にするために、ASCIIの様々なバリエーションを開発しました。これらのバリエーションのいくつかは「ASCII拡張」に分類できますが、7ビット範囲のASCIIの文字マップを保持しないものも含め、すべてのバリエーションを指すためにこの用語を誤用する人もいます。さらに、ASCII拡張はASCIIと誤って分類されることもありました。

7ビットコード

開発当初から、[59] ASCIIは国際的な文字コード標準のいくつかの国別バリエーションの1つに過ぎないことが意図されていました。

他の国際標準化団体も、ISO 646 (1967)などの文字エンコーディングを批准しています。これらはASCIIと同一またはほぼ同一ですが、英語アルファベット以外の文字や、英国ポンド記号(£)など米国以外で使用される記号(コードページ1104など)に対応する拡張が加えられています。ASCIIは米国とその他の少数の国のニーズにしか対応していなかったため、ほぼすべての国でASCIIの適応版が必要でした。例えば、カナダにはフランス語の文字をサポートする独自のバージョンがありました。

他の多くの国では、英語以外の文字 (例: éñߣ ) や通貨記号 (例: £¥ ) などを含めるために ASCII のバリエーションを開発しました。YUSCII (ユーゴスラビア) も参照してください

ASCII-1963はほとんどの文字を共通化しましたが、その他の地域的に有用な文字は「国別使用」のために予約されたいくつかのコードポイントに割り当てられました。しかし、ASCII-1963の発行から1967年にISOが初めて国際勧告を承認するまでの4年間[60]、 ASCIIが国別使用文字として選択した文字が世界の事実上の標準であるかのように思われ、他の国々がこれらのコードポイントに独自の割り当てを始めると、混乱と非互換性が生じました。

ISO/IEC 646は、ASCIIと同様に7ビットの文字セットです。追加のコードは提供されていないため、同じコードポイントでも国によって異なる文字がエンコードされます。エスケープコードは、テキストに適用される国別バリアントを示すために定義されていましたが、ほとんど使用されなかったため、どのバリアントを処理すればよいのか、ひいてはコードがどの文字を表しているのかを理解できないことがよくありました。また、一般的にテキスト処理システムは1つのバリアントしか処理できませんでした。

ASCIIの括弧と中括弧の文字は、ISO/IEC 646の他の国別バージョンでアクセント付き文字に使用される「国別使用」コードポイントに割り当てられていたため、ASCIIではなくISO/IEC 646の国別バージョンを使用するドイツ、フランス、スウェーデンなどのプログラマーは、次のようなコードを書き、読み取らなければなりませんでした。

ä aÄiÜ = 'Ön'; ü

の代わりに

{ a[i] = '\n'; }

CトライグラフはANSI Cのこの問題を解決するために作成されましたが、導入が遅れたこととコンパイラにおける実装の一貫性のなさから、その使用は限られていました。多くのプログラマはコンピュータをASCIIコードで使用していたため、スウェーデン語、ドイツ語などのプレーンテキスト(電子メールやUsenetなど)には単語の途中に「{, }」などの変形文字が含まれていました。これらのプログラマはそれに慣れていました。例えば、スウェーデン人のプログラマが別のプログラマに昼食に行こうかとメールで尋ねると、「N{jag har sm|rg}sar」という返事が返ってくる可能性がありますが、これは「いいえ、サンドイッチがあります」という意味の「Nä jag har smörgåsar」であるべきでした。

日本と韓国では、2020年代現在でも、ASCIIのバリエーションが使用されており、バックスラッシュ(16進数5C)は ¥ (日本では円記号)または ₩ (韓国ではウォン記号)として表示されます。つまり、例えばファイルパス「C:\Users\Smith」は、C:\Users\Smith(日本)またはC:\₩Users\Smith(韓国)と表示されます。

ヨーロッパでは、ASCIIの変種であるテレテキスト文字セットが放送テレビの字幕に使用されており、これは世界システムテレテキストによって定義され、DVB送信にテレテキストを埋め込むためのDVB-TXT標準を使用して放送されています。[61]字幕が最初にテレテキスト用に作成され、変換された場合、派生した字幕フォーマットは同じ文字セットに制限されます。

8ビットコード

最終的に、8 ビット、16 ビット32 ビット(後に64 ビット)のコンピュータが12 ビット18 ビット36 ビットのコンピュータに取って代わり、標準として普及し始めると、各文字をメモリに格納するために 8 ビットバイトを使用するのが一般的になり、ASCII の拡張された 8 ビットの類似文字が生まれるようになりました。ほとんどの場合、これらは ASCII の真の拡張として開発され、元の文字マッピングはそのままに、最初の 128 文字(つまり 7 ビット)の後に追加の文字定義が追加されました。ASCII 自体は 7 ビットコードのままであり、「拡張 ASCII」という用語は公式なものではありません。

一部の国では、現地の言語で使用される文字をサポートする ASCII の 8 ビット拡張が開発されました。たとえば、インドではISCII 、ベトナムではVISCIIです。

初期の家庭用コンピュータシステムのメーカーは、追加言語をサポートするために多くの文字を追加する必要がなかった市場であっても、ボックス描画文字セミグラフィックスビデオゲームのスプライトなどの追加文字を含めるために、独自の8ビットASCII拡張を開発することが多かった。これらの追加により、制御文字(インデックス0から31、およびインデックス127)が、さらにプラットフォーム固有の拡張機能に置き換えられることも多かった。また、余分なビットが反転表示の切り替えなどの他の目的に使用されることもあり、このアプローチはAtariによって開発されたASCIIの拡張であるATASCIIで採用された

ほとんどのASCII拡張はASCII-1967(現在の標準)に基づいていますが、一部の拡張は以前のASCII-1963に基づいています。例えば、コモドール・インターナショナルが自社の8ビットシステム用に開発したPETSCIIは、ASCII-1963に基づいています。同様に、シャープのMZ文字セットの多くはASCII-1963に基づいています。

IBMはIBM PC用にコードページ437を定義し、制御文字をスマイリーフェイスなどのグラフィックシンボルに置き換え、追加のグラフィック文字を上位128桁にマッピングしました。[62] Digital Equipment Corporationは、ブロック体グラフィックよりも国際言語向けに設計された最初の拡張機能の1つとして、人気のVT220端末で使用するために多国籍文字セット(DEC-MCS)を開発しました。AppleMacintosh用にMac OS Romanを定義し、 AdobeはPostScript用にPostScript標準エンコーディングを定義しました。どちらのセットにも、グラフィックの代わりに、現代の文字セットに似た「国際的な」文字、印刷記号、句読点が含まれていました。

ISO /IEC 8859規格(DEC-MCSから派生)は、ほとんどのシステムが模倣した(あるいは、完全に模倣していないとしても、少なくともそれに基づいていた)規格を提供しました。Microsoftによって設計された人気の高い拡張であるWindows-1252(しばしばISO-8859-1と誤って記載されています)は、従来のテキスト印刷に必要な印刷用句読点を追加しました。ISO-8859-1、Windows-1252、そしてオリジナルの7ビットASCIIは、 2008年にUTF-8に取って代わられるまで、ワールドワイドウェブ上で最も一般的な文字エンコード方式でした。[57]

ISO/IEC 4873では、 7ビットASCIIエンコードを8ビットシステムに拡張する一環として、 80~9Fの16進数範囲で定義された32の追加制御コードが導入されました。 [63]

ユニコード

UnicodeとISO/IEC 10646ユニバーサル文字セット(UCS)は、はるかに幅広い文字群をサポートしており、その多様なエンコード形式は、多くの環境でISO/IEC 8859やASCIIに急速に取って代わり始めています。ASCIIは128文字に制限されていますが、UnicodeとUCSは、一意の識別(コードポイントと呼ばれる自然数を使用)とエンコード(それぞれUTF-8UTF- 16、UTF - 32と呼ばれる8ビット、16ビット、または32ビットのバイナリ形式へのエンコード)の概念を分離することで、より多くの文字をサポートします。

ASCIIはUnicode(1991)文字セットの最初の128文字として組み込まれたため、7ビットASCII文字は両方のセットで同じ数値コードを持ちます。これにより、UTF-8は7ビットASCIIとの下位互換性を維持できます。ASCII文字のみを含むUTF-8ファイルは、同じ文字列を含むASCIIファイルと同一です。さらに重要なのは、 7ビットASCII文字のみを特殊文字として認識し、最上位ビットがセットされたバイトを変更しないソフトウェア(ISO-8859-1などの8ビットASCII拡張をサポートするためによく行われるように)は、UTF-8データを変更せずに保持するため、上位互換性が保証されることです。[64]

参照

注記

  1. ^ abcde 7ビットASCII文字セットの128文字は、0~7のスティックと呼ばれる8つの16文字グループに分かれており、最上位3ビットに関連付けられています[13]文字マップの水平または垂直の表現に応じて、スティックは表の行または列に対応します。
  2. ^ 「制御文字」領域のUnicode文字U+2400からU+2421は、本来の機能を果たすのではなく、印刷または表示する必要がある場合に制御文字を表すために予約されています。一部のブラウザでは正しく表示されない場合があります。
  3. ^ キャレット表記は、端末上で制御文字を表すためによく使用されます。ほとんどのテキスト端末では、キーを押しながら2番目の文字を入力すると制御文字が入力されます。Shiftキーが不要な場合もあり、例えばCtrl+2またはCtrl+Spaceだけで入力できる場合もあります。Ctrl^@
  4. ^ C プログラミング言語および JavaPerlなど、C プログラミング言語の影響を受ける他の多くの言語における文字エスケープ シーケンス(ただし、すべての実装が必ずしもすべてのエスケープ シーケンスをサポートするわけではありません)。
  5. ^ 8進数値をエスケープすることで、任意のシングルバイト文字の入力がサポートされます。ただし、 C言語の文字列におけるNULLの役割のため、この場合は特別な使用法を参照してください。
  6. ^ 一部のシステムでは、キーを押してバックスペース文字を入力することもできます← Backspace
  7. ^ ab バックスペースキーの曖昧さは、初期の端末が、キーボードの主な用途がコンピュータに接続されていない状態で紙テープを手動で穴あけすることであると想定して設計されていたことに起因しています。前の文字を削除するには、紙テープパンチを後退させる必要がありました。これは、機械的および簡便な理由から、キーボードではなくパンチ本体のボタンに搭載されていました。そのため、タイプライターのバックスペースキーと同じ位置に、消しゴムキーを配置しました。システムがこれらの端末を使用し、コマンドライン編集機能を提供する場合、バックスペースを実行するには「消しゴム」コードを使用する必要があり、バックスペース文字を解釈しないことがよくありました(バックスペースとして「^H」をエコーするなど)。紙テープ用に設計されていない他の端末では、この位置のキーでバックスペースキーが動作し、それらの端末用に設計されたシステムでは、その文字を使用して後退していました。削除コードはバックスペースキーと同じ動作をすることが多いため、端末メーカーはどのキーも削除文字以外の動作をするように設計せざるを得ませんでした。Delete
  8. ^ ほとんどのシステムでは、キーを押して Tab 文字を入力することもできますTab ↹
  9. ^ ほとんどのシステムでは、またはキーを押してキャリッジリターン文字を入力することもできます↵ EnterReturn
  10. ^ \eエスケープシーケンスは、 ISO Cや他の多くの言語仕様には含まれていません。ただし、 GCCを含むいくつかのコンパイラでは認識されます
  11. ^ 一部のシステムでは、キーを押してエスケープ文字を入力することもできますEsc
  12. ^ ^^ は+ (「Ctrl」キーとキャレットキーを押す) を意味します。Ctrl^
  13. ^ 一部のシステムでは、キーを押してDelete 文字入力できる場合があります。← Backspace
  14. ^ 印刷すると、文字は次のようになります。
     !"#$%&'()*+,-./0123456789:;<=>?​@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_​`abcdefghijklmnopqrstuvwxyz{|}~

参考文献

  1. ^ ANSI (1975-12-01)。 ISO-IR-6: ASCII グラフィック文字セット(PDF)。 ITSC​​J/情報処理学会
  2. ^ ab 「文字セット」. Internet Assigned Numbers Authority (IANA) . 2007年5月14日. 2019年8月25日閲覧
  3. ^ abcdefghijklmnopqrs Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF) . The Systems Programming Series (第1版). Addison-Wesley Publishing Company, Inc. pp. 6, 66, 211, 215, 217, 220, 223, 228, 236– 238, 243– 245, 247– 253, 423, 425– 428, 435– 439. ISBN 978-0-201-14460-4LCCN  77-90165. 2016年5月26日時点のオリジナルよりアーカイブPDF ) 。 2019年8月25日閲覧
  4. ^ Shirley, R. (2007年8月). インターネットセキュリティ用語集 バージョン2. doi : 10.17487/RFC4949 . RFC 4949. 2016年6月13日閲覧
  5. ^ マイニ、アニル・クマール(2007年)『デジタルエレクトロニクス:原理、デバイス、アプリケーション』ジョン・ワイリー・アンド・サンズ、p.28、ISBN 978-0-470-03214-5さらに、テキストの処理方法に影響を与える、印刷されない、ほとんどが廃止された制御文字 33 個のコードも定義しています
  6. ^ 「マイルストーン提案:ASCII マイルストーン - IEEE NJ Coast Section」. IEEE マイルストーン Wiki . 2016年3月29日. 2024年2月26日閲覧
  7. ^ ab Brandel, Mary (1999-07-06). 「1963年:ASCIIのデビュー」CNN . 2013年6月17日時点のオリジナルよりアーカイブ。 2008年4月14日閲覧
  8. ^ abcd 「American Standard Code for Information Interchange, ASA X3.4-1963」。Sensitive Researchアメリカ規格協会。1963年6月17日。 2020年6月6日閲覧
  9. ^ abc USA Standard Code for Information Interchange, USAS X3.4-1967 (技術レポート).米国規格協会. 1967-07-07.
  10. ^ Jennings, Thomas Daniel (2016-04-20) [1999]. 「ASCII文字コードの注釈付き歴史:情報浸透のための米国標準コード」. Sensitive Research . 2020年3月8日閲覧
  11. ^ abcd 米国情報システム規格 — 符号化文字セット — 7ビット米国情報交換規格コード(7ビットASCII)、ANSI X3.4-1986(技術報告書)。米国規格協会(ANSI)。1986年3月26日。
  12. ^ Bukstein, Ed (1964年7月). 「バイナリコンピュータコードとASCII」. Electronics World . 72 (1): 28– 29. 2016年3月3日時点のオリジナルよりアーカイブ。 2016年5月22日閲覧
  13. ^ abcdef Bemer, Robert William (1980). 「第1章 ASCIIの内側」(PDF) .汎用ソフトウェア. ベスト・オブ・インターフェース・エイジ. 第2巻. オレゴン州ポートランド, 米国: ダイリシアム・プレス. pp.  1– 50. ISBN 978-0-918398-37-6LCCN 79-67462 。 2016年8月27日時点のオリジナルよりアーカイブ。 2016年8月27日閲覧から:
  14. ^ 簡潔な報告: 新しい電信アルファベットに関する CCITT ワーキング パーティの会議、1963 年 5 月 13 〜 15 日。
  15. ^ ISO/TC/97/SC 2の報告書 – 1963年10月29~31日の会議。
  16. ^ タスクグループX3.2.4に関する報告書、1963年6月11日、ペンタゴンビル、ワシントンD.C.
  17. ^ 1963年12月17日および18日、タスクグループX3.2.4、第8回会議報告書
  18. ^ abc Winter, Dik T. (2010) [2003]. 「米国および国際規格:ASCII」。2010年1月16日時点のオリジナルよりアーカイブ。
  19. ^ ab 米国情報交換標準コード、USAS X3.4-1968(技術報告書)。米国規格協会。1968年10月10日。
  20. ^ abcdefg Salste, Tuomas (2016年1月). 「7ビット文字セット:ASCIIの改訂」. Aivosto Oy. urn : nbn:fi-fe201201011004. 2016年6月13日時点のオリジナルよりアーカイブ。 2016年6月13日閲覧
  21. ^ ab Cerf, Vint (1969-10-16). ネットワーク交換のためのASCIIフォーマット. ネットワークワーキンググループ. doi : 10.17487/RFC0020 . RFC 20. 2016年6月13日閲覧(注:イントロを除いてUSAS X3.4-1968とほぼ同じ文言です。)
  22. ^ Barry Leiba (2015年1月12日). 「RFC 20 (ASCII形式) のインターネット標準への正しい分類」IETF .
  23. ^ 「Information」. Scientific American(特別版). 215 (3). 1966年9月. JSTOR  e24931041.
  24. ^ Korpela, Jukka K. (2014-03-14) [2006-06-07]. Unicode Explained – Internationalize Documents, Programs, and Web Sites (第1版の第2版). O'Reilly Media, Inc. p. 118. ISBN 978-0-596-10121-3
  25. ^ ANSI INCITS 4-1986 (R2007): 情報システムのための米国規格 – 符号化文字セット – 7ビット情報交換のための米国規格コード (7ビットASCII)、2007 [1986]
  26. ^ “INCITS 4-1986[R2012]: 情報システム - コード化文字セット - 7ビット米国国家標準情報交換コード(7ビットASCII)”. 2012年6月15日. 2020年2月28日時点のオリジナルよりアーカイブ。 2020年2月28日閲覧
  27. ^ “INCITS 4-1986[R2017]: 情報システム - コード化文字セット - 7ビット米国国家標準情報交換コード(7ビットASCII)”. 2017年11月2日 [2017年6月9日]. 2020年2月28日時点のオリジナルよりアーカイブ。 2020年2月28日閲覧
  28. ^ “INCITS 4-1986 (R2022)”. webstore.ansi.org
  29. ^ シリアル・バイ・ビット・データ伝送における情報交換のための米国国家標準コードのビット順序米国国家規格協会(ANSI)、1966 年、X3.15-1966
  30. ^ 「電信規則および最終議定書(マドリード、1932年)」(PDF)。2023年8月21日時点のオリジナルよりアーカイブ。 2024年6月9日閲覧
  31. ^ ab Smith, Gil (2001). 「テレタイプ通信コード」(PDF) . Baudot.net. 2008年8月20日時点のオリジナルよりアーカイブ(PDF) . 2008年7月11日閲覧.
  32. ^ Sawyer, Stanley A.; Krantz, Steven George (1995). A TeX Primer for Scientists. CRC Press . p. 13. Bibcode :1995tps..book.....S. ISBN 978-0-8493-7159-2. 2016年12月22日時点のオリジナルよりアーカイブ2016年10月29日閲覧。
  33. ^ Savard, John JG「コンピューターキーボード」。2014年9月24日時点のオリジナルよりアーカイブ2014年8月24日閲覧。
  34. ^ 「ASCIIbeticalの定義」PC Magazine . 2013年3月9日時点のオリジナルよりアーカイブ。 2008年4月14日閲覧
  35. ^ Resnick, Peter W. 編 (2001年4月). インターネットメッセージフォーマット. doi : 10.17487/RFC2822 . RFC 2822. 2016年6月13日閲覧(注: NO-WS-CTL。)
  36. ^ McConnell, Robert; Haynes, James; Warren, Richard. 「ASCIIコードを理解する」。2014年2月27日時点のオリジナルよりアーカイブ。 2014年5月11日閲覧
  37. ^ Barry Margolin (2014年5月29日). "Re: エディタとワードプロセッサの歴史 (旧: Re: Emacs用RTF)". help-gnu-emacs (メーリングリスト). 2014年7月14日時点のオリジナルよりアーカイブ。 2014年7月11日閲覧
  38. ^ ab "PDP-6 マルチプログラミングシステムマニュアル" (PDF) . Digital Equipment Corporation (DEC). 1965. p. 43. 2014年7月14日時点のオリジナルよりアーカイブ(PDF) . 2014年7月10日閲覧
  39. ^ ab 「PDP-10 リファレンスハンドブック 第3巻 モニターとの通信」(PDF)。Digital Equipment Corporation (DEC)、1969年、p. 5-5。2011年11月15日時点のオリジナルよりアーカイブ(PDF) 。 2014年7月10日閲覧
  40. ^ “Help - GNU Emacsマニュアル”. 2018年7月11日時点のオリジナルよりアーカイブ2018年7月11日閲覧。
  41. ^ 「ANSI X3.64-1979」(PDF) . 2024年10月27日閲覧
  42. ^ Tim Paterson (2007年8月8日). 「DOSはCP/Mのパクリか?」DosMan Drivel . 2018年4月20日時点のオリジナルよりアーカイブ。 2018年4月19日閲覧
  43. ^ Ossanna, JF ; Saltzer, JH (1970年11月17~19日). 「端末をタイムシェアリングシステムに接続する際における技術的および人間工学的問題」(PDF) . Proceedings of the November 17-19, 1970, Fall Joint Computer Conference (FJCC) . AFIPS Press. pp.  355– 362. 2012年8月19日時点のオリジナルよりアーカイブ(PDF) . 2013年1月29日閲覧. 「改行」機能(キャリッジリターンとラインフィードの組み合わせ)を使用する方が、改行に両方の機能を必要とするよりも人間と機械の両方にとって簡単です。米国規格X3.4-1968では、改行コードに改行の意味を持たせることが認められています。
  44. ^ O'Sullivan, T. (1971-05-19). TELNETプロトコル. Internet Engineering Task Force (IETF). pp. 4–5. doi : 10.17487/RFC0158 . RFC 158. 2013年1月28日閲覧
  45. ^ Neigus, Nancy J. (1973-08-12). ファイル転送プロトコル. Internet Engineering Task Force (IETF). doi : 10.17487/RFC0542 . RFC 542. 2013年1月28日閲覧
  46. ^ Postel, Jon (1980年6月). ファイル転送プロトコル. Internet Engineering Task Force (IETF). doi : 10.17487/RFC0765 . RFC 765. 2013年1月28日閲覧
  47. ^ “MercurialのEOL翻訳計画”. Mercurial. 2016年6月16日時点のオリジナルよりアーカイブ2017年6月24日閲覧。
  48. ^ Bernstein, Daniel J.「SMTPにおけるBare LFs」。2011年10月29日時点のオリジナルよりアーカイブ2013年1月28日閲覧。
  49. ^ CP/M 1.4 インターフェースガイド(PDF) . Digital Research . 1978年. p. 10. 2019年5月29日時点のオリジナルよりアーカイブ(PDF) . 2017年10月7日閲覧
  50. ^ Haynes, Jim (2015-01-13). 「第一印象:Chadは私たちの最も重要な製品:テレタイプ社をエンジニアが振り返る」. エンジニアリングと技術史Wiki (ETHW) . 2023-02-14閲覧. 1961 ASCII から 1968 ASCII への変更がありました。一部のコンピュータ言語では、上矢印や左矢印など、1961 ASCII の文字が使用されていました。これらの文字は1968 ASCII からは姿を消しました。私たちは、当時テレタイプ社の営業担当だった Fred Mocking と協力して、 1961 ASCII の意味が完全に失われないように、変化する文字をうまく処理できる活字シリンダーを開発しました。アンダースコア文字は、左矢印としても機能するように、くさび形にしました。
  51. ^ Bemer, Robert William . 「Bemer meets Europe (Computer Standards) – Computer History Vignettes」. Trailing-edge.com. 2013年10月17日時点のオリジナルよりアーカイブ。 2008年4月14日閲覧(注: ベマー氏は当時IBMに勤務していました。)
  52. ^ “Robert William Bemer: Biography”. 2013年3月9日. 2016年6月16日時点のオリジナルよりアーカイブ。
  53. ^ ジョンソン、リンドン・ベインズ(1968年3月11日). 「連邦政府による情報交換用標準コードの採用を承認する覚書」アメリカ大統領プロジェクト. 2007年9月14日時点のオリジナルよりアーカイブ。 2008年4月14日閲覧
  54. ^ Richard S. Shuford (1996年12月20日). 「Re: ASCIIの初期の歴史?」.ニュースグループ: alt.folklore.computers. Usenet:  [email protected].
  55. ^ フォルツ、ハロルド・C.、カープ、ハリー編 (1982年2月1日). 『データ通信規格集成(第2版)』McGraw-Hill Inc. ISBN  978-0-07-021457-6
  56. ^ Dubost, Karl (2008年5月6日). 「UTF-8のWebにおける成長」. W3Cブログ. World Wide Web Consortium . 2016年6月16日時点のオリジナルよりアーカイブ。 2010年8月15日閲覧
  57. ^ ab Davis, Mark (2008年5月5日). 「Unicode 5.1への移行」.公式Googleブログ. 2016年6月16日時点のオリジナルよりアーカイブ。 2010年8月15日閲覧
  58. ^ Davis, Mark (2010年1月28日). 「Unicodeがウェブの50%に近づいています」.公式Googleブログ. 2016年6月16日時点のオリジナルよりアーカイブ2010年8月15日閲覧。
  59. ^ 「特定の基準」、RW Reachのメモの添付資料、「X3-2会議 - 9月14日と15日」、1961年9月18日
  60. ^ Maréchal, R. (1967-12-22)、ISO/TC 97 – コンピュータと情報処理:ISO勧告草案No.1052の受諾
  61. ^ 「DVB ビットストリームで ITU-R システム B テレテキストを伝送するための DVB-TXT (テレテキスト) 仕様」。
  62. ^ テクニカルリファレンス(PDF) . パーソナルコンピュータハードウェアリファレンスライブラリ (初版). IBM. 1981年8月. 付録C. 文字のキーストロークと色.
  63. ^ Unicodeコンソーシアム (2006年10月27日). 「第13章 特殊領域と書式指定文字」(PDF) . Allen, Julie D. (編). Unicode規格 バージョン5.0 . アッパーサドルリバー, ニュージャージー州, 米国: Addison-Wesley Professional . p. 314. ISBN 978-0-321-48091-0. 2022年10月9日にオリジナルからアーカイブ(PDF)されました。 2015年3月13日閲覧
  64. ^ “utf-8(7) – Linux マニュアルページ”. Man7.org. 2014年2月26日. 2014年4月22日時点のオリジナルよりアーカイブ。 2014年4月21日閲覧

さらに読む

  • ベマー, ロバート・ウィリアム(1960). 「文字コード互換性に関する提案」Communications of the ACM . 3 (2): 71– 72. doi : 10.1145/366959.366961 . S2CID  9591147.
  • ロバート・ウィリアム・ベマー(2003年5月23日). 「ASCII以前のコードの混乱:1960年コード化文字セット概説:ASCIIの理由」. 2013年10月17日時点のオリジナルよりアーカイブ。 2016年5月9日閲覧から:
  • 「米国国家標準情報交換コード | ANSI X3.4-1977」(PDF)。米国国立規格協会(NIST)1977年。2022年10月9日時点のオリジナルからアーカイブ(PDF) 。 (ファクシミリ、機械可読ではありません)
  • Robinson, GS; Cargill, C. (1996). 「コンピュータ標準の歴史と影響」. Computer . 第29巻第10号. pp.  79– 85. doi :10.1109/2.539725.
  • Mullendore, Ralph Elvin (1964) [1963]. Ptak, John F. (編). 「ASCIIの初期開発について – ASCIIの歴史」 JF Ptak Science Books (2012年3月出版). 2016年5月26日時点のオリジナルよりアーカイブ。2016年5月26日閲覧
  • 「C0制御文字と基本ラテン文字 - 範囲: 0000~007F」(PDF)。Unicode規格8.0。Unicode , Inc. 2015 [1991]。2016年5月26日時点のオリジナルよりアーカイブ(PDF) 。 2016年5月26日閲覧