Decoding is the harder direction. Encoding has one correct answer per character, but decoding depends entirely on where the gaps fall. The sequence dot dot dot could be three letter E, or I followed by E, or S, and only the spacing tells you which. That is why a decoder is only as good as its assumptions about separators.
Everything happens in your browser. The lookup table ships with the page and no request is made, so a message you are decoding stays private whether it is a competition answer or something a relative wrote down decades ago.
How the decoder handles messy input
Before anything is looked up, the input is normalised. Any character that clearly plays the role of a dot becomes a dot, and any dash like character becomes a dash. That covers the Unicode dashes people get from word processors, the middle dot, the bullet, the asterisk and the underscore, all of which turn up in real transcriptions.
Separators are then interpreted by length. A run of whitespace ends a letter, and a slash, a pipe, a double space or a line break ends a word. Anything that is neither a dot, a dash nor a separator is counted and reported instead of being silently swallowed. A morse code decoder that hides its failures is worse than one that admits them.
- Dots may be written as a full stop, a middle dot, a bullet or a lowercase o.
- Dashes may be written as a hyphen, any Unicode dash, an underscore or a lowercase _ style glyph.
- Word breaks may be a slash, a pipe, a double space or a new line.
- Sequences with no valid meaning are shown in the output as a bracketed placeholder.
What decoded morse can and cannot recover
Morse carries no case information, so decoded text arrives in a single case and the original capitalisation is gone. Conventionally the output is uppercase, which is how operators log received traffic, but this tool lets you choose uppercase, lowercase or sentence case so the result can drop straight into a document.
Punctuation survives only where the ITU table defines it. Full stop, comma, question mark, apostrophe, exclamation mark, slash, brackets, ampersand, colon, semicolon, equals, plus, hyphen, underscore, quotation mark, dollar and at all decode correctly. Anything else was never representable, so if the original had an accented name or an emoji, it was lost at encoding time and nothing can bring it back.
Using this morse code to text converter on puzzle input
Puzzles are where decoding usually goes wrong, because the setter often uses spacing that is ambiguous or absent. Mapping dots and dashes to letters has no single correct answer when a string has no gaps at all, and any tool that returns one confident reading is guessing. This one reports that the sequence is unsegmented instead.
The practical workaround is to add the letter gaps yourself, one candidate at a time, and watch the output. Real English appears quickly. It also helps to check the length of each run: no ITU symbol is longer than six elements except the dollar sign, so a run of eight dots and dashes with no gap is a segmentation problem rather than an unknown character.
Prosigns and procedural abbreviations
Operators run certain letter pairs together to make a procedural signal. SOS is the famous one, sent as a single nine element symbol rather than three separate letters. AR marks the end of a message, SK the end of a contact, BT a paragraph break and KN an invitation for one specific station to reply.
Because a prosign is written without an internal gap, a plain table lookup fails on it. When a run does not match any single character, this decoder tries to split it into valid letters and reports the prosign reading alongside, so SOS decodes rather than appearing as an unknown sequence.
Checking a decode is correct
The fastest verification is a round trip. Take the decoded text, run it back through the encoder, and compare the two morse strings. If they differ, the difference is almost always in the spacing rather than in the symbols, which points straight at the letter boundaries you guessed wrong.
Timing is also a useful sanity check when you are working from an audio recording. A dash is three times the length of a dot, letter gaps are three dot lengths and word gaps are seven. If what you transcribed as a word gap is barely longer than a letter gap, you probably split a single word in two.
| Prosign | Sent as | Meaning |
|---|---|---|
| SOS | Three dots, three dashes, three dots | Distress |
| AR | A run together | End of message |
| SK | K run together | End of contact |
| BT | B and T run together | Paragraph break |
| KN | K and N run together | Named station only, go ahead |
How to decode morse code into text
- 1
Paste the morse
Paste the dots and dashes into the box, or drop in a .txt file. Odd dot and dash characters are normalised automatically.
- 2
Confirm the word separator
Choose whether words are divided by a slash, a pipe, a double space or a line break. The default handles most sources.
- 3
Pick the output case
Morse has no case, so choose uppercase, lowercase or sentence case for the decoded text.
- 4
Decode and check
Press decode, read the result and review any unknown sequences reported beneath it before copying or downloading.
Related tools worth bookmarking
Sources and further reading
- ITU-R M.1677: International Morse codeThe recommendation that defines every symbol this decoder recognises and the timing behind the gaps.itu.int
- Unicode character code chartsReference for the many dash and dot code points that appear in pasted morse and have to be normalised.unicode.org
- MDN: String.prototype.normalizeThe normalisation behaviour used to make visually identical characters compare equal before lookup.developer.mozilla.org
Frequently asked questions
Common questions about the morse code to text converter.
Almost always because the letter and word gaps are wrong. Morse is only unambiguous when the spacing is correct, so a missing gap merges two letters into an unknown sequence and an extra gap splits one letter in two. Fix the spacing and the message usually resolves immediately.
Yes. Runs that match no single character are split into the shortest sequence of valid letters, which recovers SOS, AR, SK, BT and KN. The decoded letters are shown along with a note that the run was a run together prosign rather than a normal character.
No. International Morse code has one symbol per letter and stores no case at all, so capitalisation is destroyed during encoding and cannot be recovered. You can choose uppercase, lowercase or sentence case output, but that is a formatting choice rather than a restoration.
Any run of dots and dashes that cannot be matched, even after prosign splitting, appears in the output as a bracketed placeholder and is listed separately underneath. Nothing is guessed at, so you always know exactly which parts of the message were readable.
No. The morse table is bundled into the page and decoding happens in JavaScript inside your browser tab. There is no request carrying your text, which you can confirm in the network panel of your browser developer tools while decoding.