Network Working Group                                          Vint Cerf
Request for Comments: 20                                            UCLA
                                                       October 16, 1969

                 ASCII format for Network Interchange

  For concreteness, we suggest the use of standard 7-bit ASCII embedded
  in an 8 bit byte whose high order bit is always 0.  This leads to the
  standard code given on the attached page, copies from USAS X3, 4-
  1968.  This code will be used over HOST-HOST primary connections.
  Break characters will be defined by the receiving remote host, e.g.
  SRI uses "." (ASCII X'2E' or 2/14) as the end-of-line character,
  where as UCLA uses X'OD' or 0/13 (carriage return).

USA Standard Code for Information Interchange

1. Scope

  This coded character set is to be used for the general interchange of
  information among information processing systems, communication
  systems, and associated equipment.

2. Standard Code

|----------------------------------------------------------------------|
 B  \ b7 ------------>| 0   | 0   | 0   | 0   | 1   | 1   | 1   | 1   |
  I  \  b6 ---------->| 0   | 0   | 1   | 1   | 0   | 0   | 1   | 1   |
   T  \   b5 -------->| 0   | 1   | 0   | 1   | 0   | 1   | 0   | 1   |
    S                 |-----------------------------------------------|
              COLUMN->| 0   | 1   | 2   | 3   | 4   | 5   | 6   | 7   |
|b4 |b3 |b2 |b1 | ROW  |     |     |     |     |     |     |     |     |
+----------------------+-----------------------------------------------+
| 0 | 0 | 0 | 0 | 0    | NUL | DLE | SP  | 0   | @   | P   |   ` |   p |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 0 | 0 | 0 | 1 | 1    | SOH | DC1 | !   | 1   | A   | Q   |   a |   q |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 0 | 0 | 1 | 0 | 2    | STX | DC2 | "   | 2   | B   | R   |   b |   r |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 0 | 0 | 1 | 1 | 3    | ETX | DC3 | #   | 3   | C   | S   |   c |   s |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 0 | 1 | 0 | 0 | 4    | EOT | DC4 | $   | 4   | D   | T   |  d  |   t |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 0 | 1 | 0 | 1 | 5    | ENQ | NAK | %   | 5   | E   | U   |  e  |   u |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 0 | 1 | 1 | 0 | 6    | ACK | SYN | &   | 6   | F   | V   |  f  |   v |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 0 | 1 | 1 | 1 | 7    | BEL | ETB | '   | 7   | G   | W   |  g  |   w |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 0 | 0 | 0 | 8    | BS  | CAN | (   | 8   | H   | X   |  h  |   x |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 0 | 0 | 1 | 9    | HT  | EM  | )   | 9   | I   | Y   |  i  |   y |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 0 | 1 | 0 | 10   | LF  | SUB | *   | :   | J   | Z   |  j  |   z |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 0 | 1 | 1 | 11   | VT  | ESC | +   |  ;  | K   | [   |  k  |   { |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 1 | 0 | 0 | 12   | FF  | FS  | ,   | <   | L   | \   |  l  |   | |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 1 | 0 | 1 | 13   | CR  | GS  | -   | =   | M   | ]   |  m  |   } |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 1 | 1 | 0 | 14   | SO  | RS  | .   | >   | N   | ^   |  n  |   ~ |
|---|---|---|---|------|-----|-----|-----|-----|-----|-----|-----|-----|
| 1 | 1 | 1 | 1 | 15   | SI  | US  | /   | ?   | O   | _   |  o  | DEL |
+----------------------+-----------------------------------------------+

3. Character Representation and Code Identification

  The standard 7-bit character representation, with b7 the high-order
  bit and b1 the low-order bit, is shown below:

  EXAMPLE: The bit representation for the character "K," positioned in
  column 4, row 11, is

  b7 b6 b5 b4 b3 b2 b1
  1  0  0  1  0  1  1

  The code table position for the character "K" may also be represented
  by the notation "column 4, row 11" or alternatively as "4/11."  The
  decimal equivalent of the binary number formed by bits b7, b6, and
  b5, collectively, forms the column number, and the decimal equivalent
  of the binary number formed by bits b4, b3, b2, and b1, collectively,
  forms the row number.

  The standard code may be identified by the use of the notation ASCII
  or USASCII.

  The notation ASCII (pronounced as'-key) or USASCII (pronounced you-
  sas'-key) should ordinarily be taken to mean the code prescribed by
  the latest issue of the standard.  To explicitly designate a
  particular (perhaps prior) issue, the last two digits of the year of
  issue may be appended, as, "ASCII 63" or "USASCII 63".

4. Legend

4.1 Control Characters

  NUL Null                                DLE Data Link Escape (CC)

  SOH Start of Heading (CC)               DC1 Device Control 1

  STX Start of Text (CC)                  DC2 Device Control 2

  ETX End of Text (CC)                    DC3 Device Control 3

  EOT End of Transmission (CC)            DC4 Device Control 4 (Stop)

  ENQ Enquiry (CC)                        NAK Negative Acknowledge (CC)

  ACK Acknowledge (CC)                    SYN Synchronous Idle (CC)

  BEL Bell (audible or                    ETB End of Transmission
      attention signal)                       Block (CC)

  BS Backspace (FE)                       CAN Cancel

  HT Horizontal Tabulation                EM End of Medium
     (punched card skip) (FE)

  LF Line Feed (FE)                       SUB Substitute

  VT Vertical Tabulation (FE)             ESC Escape

  FF Form Feed (FE)                       FS File Separator IS)

  CR Carriage Return (FE)                 GS Group Separator (IS)

  SO Shift Out                            RS Record Separator (IS)

  SI Shift In                             US Unit Separator (IS)

                                          DEL Delete [1]

  ________
  NOTE: (CC) Communication Control
        (FE) Format Effector
        (IS) Information Separator
  [1] In the strict sense, DEL is not a control character.  (See 5.2)

4.2 Graphic Characters

  Column/Row  Symbol      Name

  2/0         SP          Space (Normally Non-Printing)
  2/1         !           Exclamation Point
  2/2         "           Quotation Marks (Diaeresis [2])
  2/3         #           Number Sign [3,4]
  2/4         $           Dollar Sign
  2/5         %           Percent
  2/6         &           Ampersand
  2/7         '           Apostrophe (Closing Single Quotation Mark
                          Acute Accent [2])
  2/8         (           Opening Parenthesis
  2/9         )           Closing Parenthesis
  2/10        *           Asterisk
  2/11        +           Plus
  2/12        ,           Comma (Cedilla [2])
  2/13        -           Hyphen (Minus)
  2/14        .           Period (Decimal Point)
  2/15        /           Slant
  3/10        :           Colon
  3/11        ;           Semicolon
  3/12        <           Less Than
  3/13        =           Equals
  3/14        >           Greater Than
  3/15        ?           Question Mark
  4/0         @           Commercial At [3]
  5/11        [           Opening Bracket [3]
  5/12       \            Reverse Slant [3]
  5/13        ]           Closing Bracket [3]
  5/14        ^           Circumflex [2,3]
  5/15        _           Underline
  6/0         `           Grave Accent [2,3] (Opening Single Quotation
                                  Mark)
  7/11        {           Opening Brace [3]
  7/12        |           Vertical Line [3]
  7/13        }           Closing Brace [3]
  7/14        ~           Overline [3] (Tilde [2]; General Accent [2])

  ________
     2 The use of the symbols in 2/2, 2/7, 2/12, 5/14, /6/0, and 7/14
  as diacritical marks is described in Appendix A, A5.2
     3 These characters should not be used in international interchange
  without determining that there is agreement between sender and
  recipient.  (See Appendix B4.)
     4 In applications where there is no requirement for the symbol #,
  the symbol (Pounds Sterling) may be used in position 2/3.

5. Definitions

5.1 General

     (CC)  Communication Control: A functional character intended to
  control or facilitate transmission of information over communication
  networks.
     (FE)  Format Effector: A functional character which controls the
  layout or positioning of information in printing or display devices.
     (IS) Information Separator: A character which is used to separate
  and qualify information in a logical sense.  There is a group of four
  such characters, which are to be used in a hierarchical order.

5.2 Control Characters

     NUL (Null): The all-zeros character which may serve to accomplish
  time fill and media fill.
     SOH (Start of Heading): A communication control character used at
  the beginning of a sequence of characters which constitute a
  machine-sensible address or routing information.  Such a sequence is
  referred to as the "heading."  An STX character has the effect of
  terminating a heading.
     STX (Start of Text): A communication control character which
  precedes a sequence of characters that is to be treated as an entity
  and entirely transmitted through to the ultimate destination.  Such a
  sequence is referred to as "text."  STX may be used to terminate a
  sequence of characters started by SOH.
     ETX (End of Text): A communication control character used to
  terminate a sequence of characters started with STX and transmitted
  as an entity.
     EOT (End of Transmission): A communication control character used
  to indicate the conclusion of a transmission, which may have
  contained one or more texts and any associated headings.
     ENQ (Enquiry): A communication control character used in data
  communication systems as a request for a response from a remote
  station.  It may be used as a "Who Are You" (WRU) to obtain
  identification, or may be used to obtain station status, or both.
     ACK (Acknowledge): A communication control character transmitted
  by a receiver as an affirmative response to a sender.
     BEL (Bell): A character for use when there is a need to call for
  human attention.  It may control alarm or attention devices.
     BS (Backspace): A format effector which controls the movement of
  the printing position one printing space backward on the same
  printing line.  (Applicable also to display devices.)
     HT (Horizontal Tabulation): A format effector which controls the
  movement of the printing position to the next in a series of
  predetermined positions along the printing line.  (Applicable also to
  display devices and the skip function on punched cards.)

     LF (Line Feed): A format effector which controls the movement of
  the printing position to the next printing line.  (Applicable also to
  display devices.) Where appropriate, this character may have the
  meaning "New Line" (NL), a format effector which controls the
  movement of the printing point to the first printing position on the
  next printing line.  Use of this convention requires agreement
  between sender and recipient of data.
     VT (Vertical Tabulation): A format effector which controls the
  movement of the printing position to the next in a series of
  predetermined printing lines.  (Applicable also to display devices.)
     FF (Form Feed): A format effector which controls the movement of
  the printing position to the first pre-determined printing line on
  the next form or page.  (Applicable also to display devices.)
     CR (Carriage Return): A format effector which controls the
  movement of the printing position to the first printing position on
  the same printing line.  (Applicable also to display devices.)
     SO (Shift Out): A control character indicating that the code
  combinations which follow shall be interpreted as outside of the
  character set of the standard code table until a Shift In character
  is reached.
     SI (Shift In): A control character indicating that the code
  combinations which follow shall be interpreted according to the
  standard code table.
     DLE (Data Link Escape): A communication control character which
  will change the meaning of a limited number of contiguously following
  characters.  It is used exclusively to provide supplementary controls
  in data communication networks.
     DC1, DC2, DC3, DC4 (Device Controls): Characters for the control
  of ancillary devices associated with data processing or
  telecommunication systems, more especially switching devices "on" or
  "off."  (If a single "stop" control is required to interrupt or turn
  off ancillary devices, DC4 is the preferred assignment.)
     NAK (Negative Acknowledge): A communication control character
  transmitted by a receiver as a negative response to the sender.
     SYN (Synchronous Idle): A communication control character used by
  a synchronous transmission system in the absence of any other
  character to provide a signal from which synchronism may be achieved
  or retained.
     ETB (End of Transmission Block): A communication control character
  used to indicate the end of a block of data for communication
  purposes.  ETB is used for blocking data where the block structure is
  not necessarily related to the processing format.
     CAN (Cancel): A control character used to indicate that the data
  with which it is sent is in error or is to be disregarded.
     EM (End of Medium): A control character associated with the sent
  data which may be used to identify the physical end of the medium, or
  the end of the used, or wanted, portion of information recorded on a
  medium.

(The position of this character does not necessarily correspond to the
  physical end of the medium.)

     SUB (Substitute): A character that may be substituted for a
  character which is determined to be invalid or in error.
     ESC (Escape): A control character intended to provide code
  extension (supplementary characters) in general information
  interchange.  The Escape character itself is a prefix affecting the
  interpretation of a limited number of contiguously following
  characters.
     FS (File Separator), GS (Group Separator), RS (Record Separator),
  and US (Unit Separator): These information separators may be used
  within data in optional fashion, except that their hierarchical
  relationship shall be: FS is the most inclusive, then GS, then RS,
  and US is least inclusive.  (The content and length of a File, Group,
  Record, or Unit are not specified.)
     DEL (Delete): This character is used primarily to "erase" or
  "obliterate" erroneous or unwanted characters in perforated tape.
  (In the strict sense, DEL is not a control character.)

5.3 Graphic Characters

     SP (Space): A normally non-printing graphic character used to
  separate words.  It is also a format effector which controls the
  movement of the printing position, one printing position forward.
  (Applicable also to display devices.)

6. General Considerations

  6.1 This standard does not define the means by which the coded set is
  to be recorded in any physical medium, nor does it include any
  redundancy or define techniques for error control.  Further, this
  standard does not define data communication character structure, data
  communication formats, code extension techniques, or graphic
  representation of control characters.

  6.2 Deviations from the standard may create serious difficulties in
  information interchange and should be used only with full cognizance
  of the parties involved.

  6.3 The relative sequence of any two characters, when used as a basis
  for collation, is defined by their binary values.

  6.4 No specific meaning is prescribed for any of the graphics in the
  code table except that which is understood by the users.
  Furthermore, this standard does not specify a type style for the
  printing or display of the various graphic characters.  In specific
  applications, it may be desirable to employ distinctive styling of
  individual graphics to facilitate their use for specific purposes as,
  for example, to stylize the graphics in code positions 2/1 and 5/15
  into those frequently associated with logical OR (|) and logical NOT
  (252), respectively.

  6.5 The appendixes to this standard contain additional information on
  the design and use of this code.