Called with no options, ascii behaves like `ascii -h'. Options are as follows:
Script-friendly mode, emits only ISO/decimal/hex/octal/binary encodings of the character.
Parse multiple characters. Convenient way of parsing strings.
Print in vertical aspect (4 columns by 16 rows) rather than 16x4. This option combines only with -d -o -x and must precede them.
Ascii table in decimal.
Ascii table in hex.
Ascii table in octal.
Show summary of options and a simple ASCII table.
Show version of program.
Characters in the ASCII set can have many aliases, depending on context. A character's possible names include:
Its bit pattern (binary representation).
Its hex, decimal and octal representations.
Its teletype mnemonic and caret-notation form (for control chars).
Its backlash-escape form in C (for some control chars).
Its printed form (for printables).
Its full ISO official name in English.
Its ISO/ECMA code table reference.
Its name as an HTML/SGML entity.
Slang and other names in wide use for it among hackers.
This utility accepts command-line strings and tries to interpret them as one of the above. When it finds a value, it prints all of the names of the character. The constructs in the following list can be used to specify character values. If an argument could be interpreted in two or more ways, names for all the different characters it might be are dumped.
Any character not described by one of the following conventions represents the character itself.
A caret followed by a character.
A backslash followed by certain special characters (abfnrtv).
An ASCII teletype mnemonic.
A hexadecimal (hex) sequence consists of one or two case-insensitive hex digit characters (01234567890abcdef). To ensure hex interpretation use hexh, 0xhex, xhex or \xhex.
A decimal sequence consists of one, two or three decimal digit characters (0123456789). To ensure decimal interpretation use \0ddecimal, ddecimal, or \ddecimal.
An octal sequence consists of one, two or three octal digit characters (01234567). To ensure octal interpretation use \<octal>, 0o<octal>, o<octal>, or \o<octal>.
A bit pattern (binary) sequence consists of one to eight binary digit characters (01). To ensure bit interpretation use 0b<bit pattern>, b<bit pattern> or \b<bit pattern>.
An ISO/ECMA code sequence consists of one or two decimal digit characters, a slash, and one or two decimal digit characters.
An official ASCII or (unofficial) slang name.
The slang names recognized and printed out are from a rather
comprehensive list that first appeared on USENET in early 1990 and has
been continuously updated since. Mnemonics recognized and printed
include the official ASCII set, some official ISO names (where those
differ) and a few common-use alternatives (such as NL for LF).
HTML/SGML entity names are also printed when applicable. All
comparisons are case-insensitive, and dashes are mapped to spaces.
Any unrecognized arguments or out of range values are silently
ignored. Note that the
-s option will not recognize
'long' names, as it cannot differentiate them from other parts of the
For correct results, be careful to stringize or quote shell metacharacters in arguments (especially backslash).
This utility is particularly handy for interpreting cc(1)'s ugly octal `invalid-character' messages, or when coding anything to do with serial communications. As a side effect it serves as a handy base-converter for random 8-bit values.
Eric S. Raymond
1990 (home page at http://www.catb.org/~esr/).
Reproduce, use, and modify as you like as long as you don't remove
this authorship notice. Ioannis E. Tambouras
<email@example.com> added command options and minor
enhancements. Brian J. Ginsbach <firstname.lastname@example.org> fixed
several bugs and expanded the man page. David N. Welton
<email@example.com> added the
-s option. Matej
Vela corrected the ISO names. Dave Capella contributed the idea of
listing HTML/SGML entities.