Braille ASCII
# Braille ASCII

Braille ASCII (or more formally The North American Braille ASCII Code, also known as SimBraille) is a subset of the ASCII character set which uses 64 of the printable ASCII characters to represent all possible dot combinations in six-dot braille. It was developed around 1969 and, despite originally being known as North American Braille ASCII, it is now used internationally.

## Overview

Braille ASCII uses the 64 ASCII characters between 32 and 95 inclusive. All capital letters in ASCII correspond to their equivalent values in uncontracted English Braille. Note however that, unlike standard print, there is only one braille symbol for each letter of the alphabet. Therefore, in Braille, all letters are lower-case by default, unless preceded by a capitalization sign (⠠ dot 6).

The numbers 1 through 9 and 0 correspond to the letters a through j, except that they are lowered or shifted lower in the Braille cell. For example, ⠉ dots 1-4 represents c, and ⠒ dots 2-5 is 3. The other symbols may or may not correspond to their Braille values. For example, ⠌ dots 3-4 represents / in Braille ASCII, and this is the Braille slash, but ⠿ dots 1-2-3-4-5-6 represents =, and this is not the equals sign in Braille.

Braille ASCII more closely corresponds to the Nemeth Braille Code for mathematics than it does to the English Literary Braille Code, as the Nemeth Braille code is what it was originally based upon.

If Braille ASCII is viewed in a word processor, it will look like a jumbled mix of letters, numbers, and punctuation. However, there are several fonts available, many of them free, which allow the user to view and print Braille ASCII as simulated braille, i.e. a graphical representation of braille characters.

## Uses

Braille ASCII was originally designed to be a means for storing and transmitting six-dot Braille in a digital format, and this continues to be its primary usage today. Because it uses standard characters available on computer keyboards, it can be easily typed and edited with a standard word processor. Many Braille embossers receive their input in Braille ASCII, and nearly all Braille translation software can import and export this format.

Most institutions which produce Braille materials distribute BRF files. BRF is a file that can represent contracted or uncontracted (i.e. grade 1 or grade 2) Unified English Braille, English Braille and non-English languages. BRF files contain plain Braille ASCII plus spaces, Carriage Return, Line Feed, and Form Feed ASCII control characters. The spaces, Carriage Returns, Line Feeds, and Form feeds are sufficient to specify how the Braille is formatted. Previously BRF contained some additional specialized formatting instructions, but now BRF is formatted exactly like Web-Braille/BARD. BRF files can be embossed with a braille embosser or printed, read on a refreshable braille display, or imperfectly back-translated into standard text which can then be read by a screen reader or other similar program. Many find BRF files to be a more convenient way to receive brailled content, and it has increasing use as a distribution format. If a SimBraille font is downloaded and installed a BRF file can be opened in WordPad, Apache OpenOffice, Microsoft Word, Apple Pages, etc., and the Braille will appear correctly rendered as 2 dimensional, non-tactile, visual 6 dot braille characters when the font is set to SimBraille.

Unicode includes a means for encoding eight-dot braille; however, Braille ASCII continues to be the preferred format for encoding six-dot braille.

## Braille ASCII values

The following table shows the arrangement of characters, with the hexadecimal value, corresponding ASCII character, binary notation matching the standard dot order, Braille Unicode glyph, and general meaning (the actual meaning may change depending on context).

| ASCII hex | ASCII glyph | Braille dots | Unicode Braille glyph | Braille meaning |
| - | - | - | - | - |
| 20 | (space) | 000000 | ⠀ | (space) |
| 21 | ! | 011101 | ⠮ | the |
| 22 | " | 000010 | ⠐ | (contraction) |
| 23 | # | 001111 | ⠼ | (number prefix) |
| 24 | $ | 110101 | ⠫ | ed |
| 25 | % | 100101 | ⠩ | sh |
| 26 | & | 111101 | ⠯ | and |
| 27 | ' | 001000 | ⠄ | ' |
| 28 | ( | 111011 | ⠷ | of |
| 29 | ) | 011111 | ⠾ | with |
| 2A | * | 100001 | ⠡ | ch |
| 2B | + | 001101 | ⠬ | ing |
| 2C | , | 000001 | ⠠ | (uppercase prefix) |
| 2D | - | 001001 | ⠤ | - |
| 2E | . | 000101 | ⠨ | (italic prefix) |
| 2F | / | 001100 | ⠌ | st or / |
| 30 | 0 | 001011 | ⠴ | ” |
| 31 | 1 | 010000 | ⠂ | , |
| 32 | 2 | 011000 | ⠆ | ; |
| 33 | 3 | 010010 | ⠒ | : |
| 34 | 4 | 010011 | ⠲ | . |
| 35 | 5 | 010001 | ⠢ | en |
| 36 | 6 | 011010 | ⠖ | ! |
| 37 | 7 | 011011 | ⠶ | ( or ) |
| 38 | 8 | 011001 | ⠦ | “ or ? |
| 39 | 9 | 001010 | ⠔ | in |
| 3A | : | 100011 | ⠱ | wh |
| 3B | ; | 000011 | ⠰ | (letter prefix) |
| 3C | < | 110001 | ⠣ | gh |
| 3D | = | 111111 | ⠿ | for |
| 3E | > | 001110 | ⠜ | ar |
| 3F | ? | 100111 | ⠹ | th |
| ASCII hex | ASCII glyph | Braille dots | Unicode Braille glyph | Braille meaning |
| 40 | @ | 000100 | ⠈ | (accent prefix) |
| 41 | A | 100000 | ⠁ | a |
| 42 | B | 110000 | ⠃ | b |
| 43 | C | 100100 | ⠉ | c |
| 44 | D | 100110 | ⠙ | d |
| 45 | E | 100010 | ⠑ | e |
| 46 | F | 110100 | ⠋ | f |
| 47 | G | 110110 | ⠛ | g |
| 48 | H | 110010 | ⠓ | h |
| 49 | I | 010100 | ⠊ | i |
| 4A | J | 010110 | ⠚ | j |
| 4B | K | 101000 | ⠅ | k |
| 4C | L | 111000 | ⠇ | l |
| 4D | M | 101100 | ⠍ | m |
| 4E | N | 101110 | ⠝ | n |
| 4F | O | 101010 | ⠕ | o |
| 50 | P | 111100 | ⠏ | p |
| 51 | Q | 111110 | ⠟ | q |
| 52 | R | 111010 | ⠗ | r |
| 53 | S | 011100 | ⠎ | s |
| 54 | T | 011110 | ⠞ | t |
| 55 | U | 101001 | ⠥ | u |
| 56 | V | 111001 | ⠧ | v |
| 57 | W | 010111 | ⠺ | w |
| 58 | X | 101101 | ⠭ | x |
| 59 | Y | 101111 | ⠽ | y |
| 5A | Z | 101011 | ⠵ | z |
| 5B | [ | 010101 | ⠪ | ow |
| 5C | \ | 110011 | ⠳ | ou |
| 5D | ] | 110111 | ⠻ | er |
| 5E | ^ | 000110 | ⠘ | (currency prefix) |
| 5F | _ | 000111 | ⠸ | (contraction) |

The following C string literal (which can also be used in Python and other programming languages that accept C string literals) is derived from the above table and gives the Braille ASCII mappings for Unicode Braille characters U+2800 through U+283F in order, starting with U+2800 at the start of the string:

It maps this Unicode string:

## Unused ASCII values

Only 64 characters are needed to represent all possible combinations of 6-dot braille (including space), so not all ASCII values are needed for Braille ASCII.

The lower-case letters (a to z) are not normally used, but might be interpreted as having the same dot patterns as their upper-case equivalents. `, {, |, and } are not used and their Braille ASCII rendition is not defined.

Braille ASCII is merely a subset of the ASCII table that can be used to represent all possible combinations of 6-dot braille. It is not to be confused with the Computer Braille Code, which can represent all ASCII values in braille.

