Morse Code: How to Encode and Decode It in Twelve Alphabets
A message in Morse code looks like noise until you know three things: which signals exist, how much silence separates them, and which alphabet the sender had in mind. Get those right and a line like .... . .-.. .-.. --- / .-- --- .-. .-.. -.. reads as easily as plain text. Get the third one wrong and the same dots turn into a different language entirely.
This guide covers the system as it is actually sent, then shows the working mechanics of encoding and decoding with a browser tool that carries twelve published alphabets.
What the signals are, and what the gaps mean
Morse code has two signals and three gaps, all measured against one base unit.
| Element | Length | Written as |
|---|---|---|
| Dit (dot) | 1 unit | . |
| Dah (dash) | 3 units | - |
| Gap inside a character | 1 unit | nothing, the symbols are adjacent |
| Gap between characters | 3 units | one space |
| Gap between words | 7 units | a slash with spaces, / |
That is the whole protocol at the signal level. The international version was standardised in 1865 and is now published as ITU-R M.1677-1, which fixes the letter and numeral assignments and the timing ratios above.
The spacing is not cosmetic. Inside a character the signals are separated by a single unit, so ... is three dits and reads as S, while . . . with element gaps between them reads as three separate E characters. Copy that distinction loosely and the message changes meaning without a single wrong dot.
Why some letters are short and some are long
The Latin table was designed around printing frequency, in the era of hand-set type. E, the most common letter in English, is a single dit. T is a single dah. A, I, M and N, all common, use two symbols. Rare letters like Q, Y and Z run to four.
The practical consequence is speed. A trained operator sending ordinary English needs fewer key presses per word than the raw letter count suggests, because the frequent letters are cheap. This is also why Morse survives as a human skill: the code is optimised for hands and ears, not for machines.
Numerals are uniform at five symbols each, which makes them slower per character but impossible to confuse with letters at speed. Punctuation uses six symbols and a small number of mixed patterns; the full stop is .-.-.-, the comma --..--, the question mark ..--...
Timing, WPM and the PARIS reference
Speed is measured in words per minute, and the word is notional. The standard reference word is PARIS, fifty units long when its letters and gaps are counted. That single number defines the arithmetic:
- 1 WPM equals 1.2 dots per second;
- 12 WPM equals 14.4 dots per second;
- 20 WPM equals 24 dots per second;
- 25 WPM, the usual amateur radio target, equals 30 dots per second.
Manual sending usually lands between 5 and 40 WPM. Below about 12 WPM operators tend to count symbols individually; above 20 the letters start arriving as shapes, which is why learning methods switch to whole-character recognition early.
Farnsworth timing is a training arrangement, not a different standard. The characters keep their full speed, but the gaps between them are stretched so a beginner has time to write each one down. A learner at 18 WPM character speed with 10 WPM effective spacing hears crisp letters and generous pauses.
Twelve alphabets, one tool
A dot-dash pattern is a code, not a drawing of a letter. Four dots are H in Latin, Х in Cyrillic, and the numeral 5 in a numeric context. Every translator therefore needs to know which table is in play before it can decode anything.
The converter on this site carries twelve sets, and their sizes are not equal:
| Alphabet | Symbols | Notes |
|---|---|---|
| Latin | 26 letters plus space | A to Z, the international base |
| Numbers | 10 | five symbols each |
| Punctuation | 20 | . , ? ' ! / ( ) & : ; = + - _ " (dollar) (at) ¿ ¡ |
| Latin extended | 45 | accented letters for European languages |
| Cyrillic | 36 | Russian plus Ukrainian and Belarusian letters |
| Greek | 24 | reuses Latin shapes, adds chi |
| Hebrew | 22 | one code per letter |
| Arabic | 29 | including hamza |
| Persian | 32 | adds peh, cheh, zheh, gaf |
| Japanese | 55 | full-width katakana |
| Korean | 26 | jamo, not whole syllables |
| Thai | 52 | consonants, vowels, tone marks |
The mappings follow different logic. Greek assigns codes by resemblance and sound, so alpha takes Latin A and beta takes Latin B even though beta sounds like V. Cyrillic maps letters to the Latin letters that look closest, which is why Привет encodes as . --. .-. .. .-- . - and comes back as ПРИВЕТ. Arabic and Persian build codes per letter without regard to Latin shapes. Japanese uses the Wabun table for katakana. Korean sends individual jamo, so a syllable block is written as its component letters rather than as one unit.
Encoding a message step by step
Encoding is the simple direction, and three habits prevent most errors.
- Choose the alphabet before typing. Text in Cyrillic encoded under the Latin table loses its meaning even though the output looks valid.
- Keep words separate. The tool inserts a slash with a space on each side, matching the seven-unit gap. Removing those separators turns a sentence into one long string that nobody can split correctly later.
- Read the result back once. Entering
hello worldgives.... . .-.. .-.. --- / .-- --- .-. .-.. -..; decoding that line returns the original text, which is the cheapest possible check.
For a distress call, SOS is ... --- ..., three letters chosen because the pattern is unmistakable by ear: three short, three long, three short, with no gap between the letters beyond the standard three units.
Decoding, and where it goes wrong
Decoding needs a stricter input format than people expect. Symbols inside a character must be adjacent, characters separated by single spaces, words by a slash. A line pasted with double spaces still decodes, but one pasted with no spaces at all does not, since the receiver cannot tell where one character ends.
Four failure modes account for almost every broken decode.
- Mixed alphabets in one line. A message that starts in Latin and continues in Cyrillic has to be decoded twice, changing the selector between passes.
- Missing separators.
...---...is a single unrecognised group;... --- ...is SOS. - Unsupported characters. A hash in the output means the character has no entry in the active table. Cyrillic ё, accented Greek vowels, and Hebrew final letter forms are the usual cases; the unaccented or standard form of the letter is normally present.
- Numerals confused with letters. In the Latin table, five dots are the numeral 5, not a letter. Decoding a numeric group under the letter table returns a plausible but wrong character.
The last one is the reason the alphabet selector exists at all. A decoder that ignores context will always produce something; the question is whether the something is what the sender meant.
Where Morse code is still in service
Commercial and military telegraphy retired the code decades ago, but three uses remain current.
Aviation navigation beacons identify themselves in Morse, so pilots hear a three-letter code repeated under the carrier. Amateur radio operators use it as the CW mode, which still reaches further per watt than voice because the signal occupies a band only 50 to 150 Hz wide. Maritime and emergency services keep it as a fallback that works when voice links fail, and the SOS pattern remains the international distress signal.
There is also a quieter use: puzzles, games, and teaching material. A short encoded line is a self-contained hint that needs no key, and the reference table doubles as an answer sheet.
Getting the spacing right when you copy by hand
Anyone writing Morse by hand runs into the same problem: element gaps and letter gaps look identical on paper. Two conventions solve it.
The first is to write the letters as separate groups and never let them touch. Three units of silence inside a letter is a fact about transmission, not about the written form; on paper the symbols inside a character are simply adjacent.
The second is to mark words explicitly. A slash, a double space, or a line break all serve, as long as the reader knows the convention in advance. The tool uses spaced slashes because they survive copy and paste into chat windows and spreadsheets, where double spaces are often collapsed.
When a message has to travel through systems that mangle whitespace, the safer form is to replace the word separator with something visible that is not itself a Morse symbol, then note the substitution in the covering message.
Frequently Asked Questions
How long does it take to learn Morse code?
The full Latin set usually takes two to four weeks of short daily sessions, and copying at 15 WPM takes a few months. Cyrillic or Arabic tables add vocabulary work, not new mechanics.
Can I send Morse code with a flashlight?
Yes. Any two-state signal works: light on is a dash, a brief flash is a dot, and the gaps carry the same meaning. Signalling lamps and heliographs were standard military gear for this reason.
Is American Morse different from international Morse?
They are different codes. American Morse, used on inland US telegraph lines, had spaces inside characters and separate codes for some numerals. International Morse, standardised in 1865, removed them.
What does the slash in the output mean?
It marks a word boundary, standing in for the seven-unit silence between words. Letters take single spaces and the signals inside a letter take none, so ... --- ... / .- reads as SOS and A.
Why does decoding return uppercase letters?
Morse code has no case: the Latin table holds one code per letter. The converter returns the uppercase form by convention, the way call signs were written. The reader restores case if it matters.
Can Morse code represent Chinese or Hindi?
Not with a dedicated table. Chinese uses the four-digit telegraph code, one number per character, and Hindi is usually transliterated into Latin first. Both are number codes or transliterations.
What is a prosign?
A prosign is a group of characters sent with no letter gaps, standing for an instruction: end of message, wait, error, go ahead. It reads as one long character to an operator who knows the convention.
Does the converter store what I type?
No. Encoding and decoding are text operations inside the page and the input is never sent. Clearing the panes removes the text, and no account or history is kept.
Washington, DC · SO reputation 19990 · Badges: 26🥇109🥈143🥉 · SO member since 2010