Braille

Contents

Characters A-Z All 64 6-dot Braille Unicode characters All 256 8-dot Braille Unicode characters Braille for representing numbers Links

Characters A-Z

a/1b/2c/3d/4e/5f/6g/7h/8i/9j/0
 
klmnopqrst
 
uvxyzw

Notes: A-J form the base characters, and K-Z (except W) can be formed by adding dots to them: K-T: A-J plus 1 dot U-V and X-Z (excluding W): A-E plus 2 dots 'ejoty' gives every 5th char.

All 64 6-dot Braille Unicode characters

charmeaning
a/1
b/2 [mnemonic: 2 blobs like 'B']
c/3 [mnemonic: *c*at's eyes]
d/4 [mnemonic: 'D' at an angle]
e/5 [mnemonic: dots go down, d*e*crease]
f/6 [mnemonic: bottom half of 'F']
g/7 [mnemonic: a lot of ink in a small space like 'G']
h/8 [mnemonic: top half of 'h']
i/9 [mnemonic: 2 pieces like 'i', dots go up, *i*ncrease]
j/0 [mnemonic: 'J' without a hat]
k [mnemonic: right ends of 'k']
l [mnemonic: 'l']
m [mnemonic: left part of 'm' with a gap]
n [mnemonic: a bit like an 'n' on its side]
o [mnemonic: 'o' if add a dot on the left]
p [mnemonic: 'p']
q [mnemonic: mirror image of 'q']
r [mnemonic: 'r' points right]
s [mnemonic: top half of 's']
t [mnemonic: looks like a *T*etris piece]
u [mnemonic: left part of 'u' with a gap]
v [mnemonic: 'v' at an angle]
w [mnemonic: middle of a 'w' on its side]
x [mnemonic: 4 points like 'x']
y [mnemonic: top of 'y' on its side]
z [mnemonic: mirror image of bottom of 'z']
(blank)
, [pattern like a]
' [pattern like a]
[pattern like a]
[pattern like a]
(caps) [pattern like a]
; [pattern like b]
[pattern like b]
(Grade 1) [pattern like b]
: [pattern like c]
- [pattern like c]
. [pattern like d]
[pattern like e]
! [pattern like f]
[pattern like g]
? [pattern like h]
[pattern like i]
[pattern like j]
[pattern like k]
[pattern like l]
(number)

Mnemonics: 'corners' are even numbers, in anticlockwise order: f/6⠋⠙d/4 h/8⠓⠚j/0 mirror images: ⠑⠊ e/i (vowels) mirror images: ⠗⠺ r/w (right/wrong) similar: ⠇⠗ l/r (left/right) similar: ⠕⠗ o/r ('or') similar: ⠧⠼ v/number similar: ⠛⠭ g/x vowels: ⠁⠑⠊⠕⠥ aeiou 26 letters: ⠁⠃⠉⠙⠑⠋⠛⠓⠊⠚⠅⠇⠍⠝⠕⠏⠟⠗⠎⠞⠥⠧⠺⠭⠽⠵ abcdefghijklmnopqrstuvwxyz

All 256 8-dot Braille Unicode characters

There are 256 Braille Unicode characters: U+2800..U+28FF (10240..10495). The final column is useful for sorting the chars as though they are the binary representation of integers. Note: the char '*' has a lower Unicode codepoint than '1', thus sorting as a string, sorts them in numerical order.

dechexchardots '12374568'-styledots '12345678'-style paddeddot count
102402800(BLANK)********0
10241280111*******1
1024228022*2******1
1024328031212******2
1024428043**3*****1
102452805131*3*****2
10246280623*23*****2
102472807123123*****3
1024828084****5***1
102492809141***5***2
10250280A24*2**5***2
10251280B12412**5***3
10252280C34**3*5***2
10253280D1341*3*5***3
10254280E234*23*5***3
10255280F1234123*5***4
1025628105*****6**1
102572811151****6**2
10258281225*2***6**2
10259281312512***6**3
10260281435**3**6**2
1026128151351*3**6**3
102622816235*23**6**3
1026328171235123**6**4
10264281845****56**2
1026528191451***56**3
10266281A245*2**56**3
10267281B124512**56**4
10268281C345**3*56**3
10269281D13451*3*56**4
10270281E2345*23*56**4
10271281F12345123*56**5
1027228206******7*1
102732821161*****7*2
10274282226*2****7*2
10275282312612****7*3
10276282436**3***7*2
1027728251361*3***7*3
102782826236*23***7*3
1027928271236123***7*4
10280282846****5*7*2
1028128291461***5*7*3
10282282A246*2**5*7*3
10283282B124612**5*7*4
10284282C346**3*5*7*3
10285282D13461*3*5*7*4
10286282E2346*23*5*7*4
10287282F12346123*5*7*5
10288283056*****67*2
1028928311561****67*3
102902832256*2***67*3
102912833125612***67*4
102922834356**3**67*3
10293283513561*3**67*4
1029428362356*23**67*4
10295283712356123**67*5
102962838456****567*3
10297283914561***567*4
10298283A2456*2**567*4
10299283B1245612**567*5
10300283C3456**3*567*4
10301283D134561*3*567*5
10302283E23456*23*567*5
10303283F123456123*567*6
1030428407***4****1
103052841171**4****2
10306284227*2*4****2
10307284312712*4****3
10308284437**34****2
1030928451371*34****3
103102846237*234****3
10311284712371234****4
10312284847***45***2
1031328491471**45***3
10314284A247*2*45***3
10315284B124712*45***4
10316284C347**345***3
10317284D13471*345***4
10318284E2347*2345***4
10319284F1234712345***5
10320285057***4*6**2
1032128511571**4*6**3
103222852257*2*4*6**3
103232853125712*4*6**4
103242854357**34*6**3
10325285513571*34*6**4
1032628562357*234*6**4
103272857123571234*6**5
103282858457***456**3
10329285914571**456**4
10330285A2457*2*456**4
10331285B1245712*456**5
10332285C3457**3456**4
10333285D134571*3456**5
10334285E23457*23456**5
10335285F123457123456**6
10336286067***4**7*2
1033728611671**4**7*3
103382862267*2*4**7*3
103392863126712*4**7*4
103402864367**34**7*3
10341286513671*34**7*4
1034228662367*234**7*4
103432867123671234**7*5
103442868467***45*7*3
10345286914671**45*7*4
10346286A2467*2*45*7*4
10347286B1246712*45*7*5
10348286C3467**345*7*4
10349286D134671*345*7*5
10350286E23467*2345*7*5
10351286F12346712345*7*6
103522870567***4*67*3
10353287115671**4*67*4
1035428722567*2*4*67*4
1035528731256712*4*67*5
1035628743567**34*67*4
103572875135671*34*67*5
10358287623567*234*67*5
1035928771235671234*67*6
1036028784567***4567*4
103612879145671**4567*5
10362287A24567*2*4567*5
10363287B12456712*4567*6
10364287C34567**34567*5
10365287D1345671*34567*6
10366287E234567*234567*6
10367287F12345671234567*7
1036828808*******81
103692881181******82
10370288228*2*****82
10371288312812*****83
10372288438**3****82
1037328851381*3****83
103742886238*23****83
1037528871238123****84
10376288848****5**82
1037728891481***5**83
10378288A248*2**5**83
10379288B124812**5**84
10380288C348**3*5**83
10381288D13481*3*5**84
10382288E2348*23*5**84
10383288F12348123*5**85
10384289058*****6*82
1038528911581****6*83
103862892258*2***6*83
103872893125812***6*84
103882894358**3**6*83
10389289513581*3**6*84
1039028962358*23**6*84
10391289712358123**6*85
103922898458****56*83
10393289914581***56*84
10394289A2458*2**56*84
10395289B1245812**56*85
10396289C3458**3*56*84
10397289D134581*3*56*85
10398289E23458*23*56*85
10399289F123458123*56*86
1040028A068******782
1040128A11681*****783
1040228A2268*2****783
1040328A3126812****784
1040428A4368**3***783
1040528A513681*3***784
1040628A62368*23***784
1040728A712368123***785
1040828A8468****5*783
1040928A914681***5*784
1041028AA2468*2**5*784
1041128AB1246812**5*785
1041228AC3468**3*5*784
1041328AD134681*3*5*785
1041428AE23468*23*5*785
1041528AF123468123*5*786
1041628B0568*****6783
1041728B115681****6784
1041828B22568*2***6784
1041928B31256812***6785
1042028B43568**3**6784
1042128B5135681*3**6785
1042228B623568*23**6785
1042328B7123568123**6786
1042428B84568****56784
1042528B9145681***56785
1042628BA24568*2**56785
1042728BB12456812**56786
1042828BC34568**3*56785
1042928BD1345681*3*56786
1043028BE234568*23*56786
1043128BF1234568123*56787
1043228C078***4***82
1043328C11781**4***83
1043428C2278*2*4***83
1043528C3127812*4***84
1043628C4378**34***83
1043728C513781*34***84
1043828C62378*234***84
1043928C7123781234***85
1044028C8478***45**83
1044128C914781**45**84
1044228CA2478*2*45**84
1044328CB1247812*45**85
1044428CC3478**345**84
1044528CD134781*345**85
1044628CE23478*2345**85
1044728CF12347812345**86
1044828D0578***4*6*83
1044928D115781**4*6*84
1045028D22578*2*4*6*84
1045128D31257812*4*6*85
1045228D43578**34*6*84
1045328D5135781*34*6*85
1045428D623578*234*6*85
1045528D71235781234*6*86
1045628D84578***456*84
1045728D9145781**456*85
1045828DA24578*2*456*85
1045928DB12457812*456*86
1046028DC34578**3456*85
1046128DD1345781*3456*86
1046228DE234578*23456*86
1046328DF1234578123456*87
1046428E0678***4**783
1046528E116781**4**784
1046628E22678*2*4**784
1046728E31267812*4**785
1046828E43678**34**784
1046928E5136781*34**785
1047028E623678*234**785
1047128E71236781234**786
1047228E84678***45*784
1047328E9146781**45*785
1047428EA24678*2*45*785
1047528EB12467812*45*786
1047628EC34678**345*785
1047728ED1346781*345*786
1047828EE234678*2345*786
1047928EF123467812345*787
1048028F05678***4*6784
1048128F1156781**4*6785
1048228F225678*2*4*6785
1048328F312567812*4*6786
1048428F435678**34*6785
1048528F51356781*34*6786
1048628F6235678*234*6786
1048728F712356781234*6787
1048828F845678***456785
1048928F91456781**456786
1049028FA245678*2*456786
1049128FB124567812*456787
1049228FC345678**3456786
1049328FD13456781*3456787
1049428FE2345678*23456787
1049528FF12345678123456788

Braille for representing numbers

Braille typically numbers dots 1 2 3 7 (left) 4 5 6 8 (right). However, if we use numbering 1 2 3 4 5 6 7 8, then Braille dots can be used as the binary representation for the numbers 0 to 255 inclusive. The 256 Braille chars ordered by binary representation: ⠀⢀⠠⢠⠐⢐⠰⢰⠈⢈⠨⢨⠘⢘⠸⢸ ⡀⣀⡠⣠⡐⣐⡰⣰⡈⣈⡨⣨⡘⣘⡸⣸ ⠄⢄⠤⢤⠔⢔⠴⢴⠌⢌⠬⢬⠜⢜⠼⢼ ⡄⣄⡤⣤⡔⣔⡴⣴⡌⣌⡬⣬⡜⣜⡼⣼ ⠂⢂⠢⢢⠒⢒⠲⢲⠊⢊⠪⢪⠚⢚⠺⢺ ⡂⣂⡢⣢⡒⣒⡲⣲⡊⣊⡪⣪⡚⣚⡺⣺ ⠆⢆⠦⢦⠖⢖⠶⢶⠎⢎⠮⢮⠞⢞⠾⢾ ⡆⣆⡦⣦⡖⣖⡶⣶⡎⣎⡮⣮⡞⣞⡾⣾ ⠁⢁⠡⢡⠑⢑⠱⢱⠉⢉⠩⢩⠙⢙⠹⢹ ⡁⣁⡡⣡⡑⣑⡱⣱⡉⣉⡩⣩⡙⣙⡹⣹ ⠅⢅⠥⢥⠕⢕⠵⢵⠍⢍⠭⢭⠝⢝⠽⢽ ⡅⣅⡥⣥⡕⣕⡵⣵⡍⣍⡭⣭⡝⣝⡽⣽ ⠃⢃⠣⢣⠓⢓⠳⢳⠋⢋⠫⢫⠛⢛⠻⢻ ⡃⣃⡣⣣⡓⣓⡳⣳⡋⣋⡫⣫⡛⣛⡻⣻ ⠇⢇⠧⢧⠗⢗⠷⢷⠏⢏⠯⢯⠟⢟⠿⢿ ⡇⣇⡧⣧⡗⣗⡷⣷⡏⣏⡯⣯⡟⣟⡿⣿ Notes: The first char is a blank Braille char, not space. The 2nd 1/2 all have dot 1 present (lines 9-16). The 2nd 1/4 all have dot 2 present (lines 5-8). The 2nd 1/8 all have dot 3 present (lines 3-4). The 2nd 1/16 all have dot 7 present (line 2). The 2nd 1/32 all have dot 4 present (2nd 1/2 of line 1, chars 9-16). The 2nd 1/64 all have dot 5 present (2nd 1/4 of line 1, chars 5-8). The 2nd 1/128 all have dot 6 present (2nd 1/8 of line 1, chars 3-4). The 2nd 1/256 all have dot 8 present (2nd 1/16 of line 1, char 2). Below is code to generate the 256 chars in that order.

//JavaScript: print 256 Braille chars in binary representation order:

function NumToBraille(vNum)
{
	let vOffset = 0;
	if (vNum & 128) vOffset |= 1;   //dot 1
	if (vNum & 64)  vOffset |= 2;   //dot 2
	if (vNum & 32)  vOffset |= 4;   //dot 3
	if (vNum & 16)  vOffset |= 64;  //dot 7
	if (vNum & 8)   vOffset |= 8;   //dot 4
	if (vNum & 4)   vOffset |= 16;  //dot 5
	if (vNum & 2)   vOffset |= 32;  //dot 6
	if (vNum & 1)   vOffset |= 128; //dot 8
	return String.fromCharCode(0x2800 + vOffset);
}

function BrailleToNum(vChar)
{
	const vOffset = vChar.charCodeAt(0) - 0x2800;
	let vNum = 0;
	if (vOffset & 1)   vNum |= 128; //dot 1
	if (vOffset & 2)   vNum |= 64;  //dot 2
	if (vOffset & 4)   vNum |= 32;  //dot 3
	if (vOffset & 64)  vNum |= 16;  //dot 7
	if (vOffset & 8)   vNum |= 8;   //dot 4
	if (vOffset & 16)  vNum |= 4;   //dot 5
	if (vOffset & 32)  vNum |= 2;   //dot 1
	if (vOffset & 128) vNum |= 1;   //dot 8
	return vNum;
}

let vOutput = "";
for (let i = 0; i < 256; i++)
	vOutput += NumToBraille(i);
console.log(vOutput);
console.log(1 == BrailleToNum(NumToBraille(1)));

#Python: print 256 Braille chars in binary representation order:

def NumToBraille(vNum):
	vOffset = 0
	if vNum & 128: vOffset |= 1   #dot 1
	if vNum & 64:  vOffset |= 2   #dot 2
	if vNum & 32:  vOffset |= 4   #dot 3
	if vNum & 16:  vOffset |= 64  #dot 7
	if vNum & 8:   vOffset |= 8   #dot 4
	if vNum & 4:   vOffset |= 16  #dot 5
	if vNum & 2:   vOffset |= 32  #dot 6
	if vNum & 1:   vOffset |= 128 #dot 8
	return chr(0x2800 + vOffset)

def BrailleToNum(vChar):
    vOffset = ord(vChar) - 0x2800
    vNum = 0
    if vOffset & 1:   vNum |= 128 #dot 1
    if vOffset & 2:   vNum |= 64  #dot 2
    if vOffset & 4:   vNum |= 32  #dot 3
    if vOffset & 64:  vNum |= 16  #dot 7
    if vOffset & 8:   vNum |= 8   #dot 4
    if vOffset & 16:  vNum |= 4   #dot 5
    if vOffset & 32:  vNum |= 2   #dot 6
    if vOffset & 128: vNum |= 1   #dot 8
    return vNum

oChars = []
for i in range(256):
	oChars.append(NumToBraille(i))
vOutput = "".join(oChars)
print(vOutput)
print(1 == BrailleToNum(NumToBraille(1)))

Braille - Wikipedia English Braille - Wikipedia Braille Patterns - Wikipedia NamesList.txt [Unicode characters and names e.g. 'BRAILLE PATTERN BLANK' to 'BRAILLE PATTERN DOTS-12345678'] The Braille Alphabet – PharmaBraille