ASCII

From wikinotes

ASCII is a 7-bit text encoding system, stored in an 8-bit byte integer.
It maps integers to english alphabet/punctuation using numbers 0-127 (a 7-bit integer per character).

A later revision of the system introduced the usage of the 8th bit for one additional language at a time.

Documentation

RFC 20 https://datatracker.ietf.org/doc/html/rfc20
man ascii https://man.archlinux.org/man/core/man-pages/ascii.7.en
wikipedia ASCII https://en.wikipedia.org/wiki/ASCII
wikipedia Extended ASCII https://en.wikipedia.org/wiki/Extended_ASCII
wikipedia ISO 646 (multilang extensions) https://en.wikipedia.org/wiki/ISO/IEC_646

Tutorials

stack-overflow unicode/utf-8 https://stackoverflow.com/questions/643694/what-is-the-difference-between-utf-8-and-unicode

Example

00000000  # 1x byte in binary
01100100  # 100 in binary (in ascii, the 'd' character)

Ascii Table (7-bit)

( or just man ascii )

| int  oct    char | int  oct    char | int  oct    char | int  oct    char |
| ---------------- | ---------------- | ---------------- | ---------------- |
| 0    0o0    \x00 | 1    0o1    \x01 | 2    0o2    \x02 | 3    0o3    \x03 |
| 4    0o4    \x04 | 5    0o5    \x05 | 6    0o6    \x06 | 7    0o7    \x07 |
| 8    0o10   \x08 | 9    0o11   \t   | 10   0o12   \n   | 11   0o13   \x0b |
| 12   0o14   \x0c | 13   0o15   \r   | 14   0o16   \x0e | 15   0o17   \x0f |
| 16   0o20   \x10 | 17   0o21   \x11 | 18   0o22   \x12 | 19   0o23   \x13 |
| 20   0o24   \x14 | 21   0o25   \x15 | 22   0o26   \x16 | 23   0o27   \x17 |
| 24   0o30   \x18 | 25   0o31   \x19 | 26   0o32   \x1a | 27   0o33   \x1b |
| 28   0o34   \x1c | 29   0o35   \x1d | 30   0o36   \x1e | 31   0o37   \x1f |
| 32   0o40        | 33   0o41   !    | 34   0o42   "    | 35   0o43   #    |
| 36   0o44   $    | 37   0o45   %    | 38   0o46   &    | 39   0o47   '    |
| 40   0o50   (    | 41   0o51   )    | 42   0o52   *    | 43   0o53   +    |
| 44   0o54   ,    | 45   0o55   -    | 46   0o56   .    | 47   0o57   /    |
| 48   0o60   0    | 49   0o61   1    | 50   0o62   2    | 51   0o63   3    |
| 52   0o64   4    | 53   0o65   5    | 54   0o66   6    | 55   0o67   7    |
| 56   0o70   8    | 57   0o71   9    | 58   0o72   :    | 59   0o73   ;    |
| 60   0o74   <    | 61   0o75   =    | 62   0o76   >    | 63   0o77   ?    |
| 64   0o100  @    | 65   0o101  A    | 66   0o102  B    | 67   0o103  C    |
| 68   0o104  D    | 69   0o105  E    | 70   0o106  F    | 71   0o107  G    |
| 72   0o110  H    | 73   0o111  I    | 74   0o112  J    | 75   0o113  K    |
| 76   0o114  L    | 77   0o115  M    | 78   0o116  N    | 79   0o117  O    |
| 80   0o120  P    | 81   0o121  Q    | 82   0o122  R    | 83   0o123  S    |
| 84   0o124  T    | 85   0o125  U    | 86   0o126  V    | 87   0o127  W    |
| 88   0o130  X    | 89   0o131  Y    | 90   0o132  Z    | 91   0o133  [    |
| 92   0o134  \\   | 93   0o135  ]    | 94   0o136  ^    | 95   0o137  _    |
| 96   0o140  `    | 97   0o141  a    | 98   0o142  b    | 99   0o143  c    |
| 100  0o144  d    | 101  0o145  e    | 102  0o146  f    | 103  0o147  g    |
| 104  0o150  h    | 105  0o151  i    | 106  0o152  j    | 107  0o153  k    |
| 108  0o154  l    | 109  0o155  m    | 110  0o156  n    | 111  0o157  o    |
| 112  0o160  p    | 113  0o161  q    | 114  0o162  r    | 115  0o163  s    |
| 116  0o164  t    | 117  0o165  u    | 118  0o166  v    | 119  0o167  w    |
| 120  0o170  x    | 121  0o171  y    | 122  0o172  z    | 123  0o173  {    |
| 124  0o174  |    | 125  0o175  }    | 126  0o176  ~    | 127  0o177  \x7f |

Extended Ascii (8-bit)

Once computers standardized on 8-bit bytes, the 8th bit was used to support additional european characters.
Characters like accent-grave, accent-egu, etc.

Since characters were not sufficient for many languages, there were several variants of extended ascii.

Manuals

You can install ascii which will render ascii codes in a terminal.

pacman -S ascii

ascii -o  # display ascii-to-octal table

ASCII Art

See ascii art