Text & wordsFree

Morse Code Translator

Free Morse code translator. Convert text to Morse code and Morse back to text. Dots, dashes, and spaces.

Last updated 14 October 2026

It knows 43 symbols, and silently ignores everything else

The table behind this tool holds the 26 letters, the 10 digits and seven punctuation marks: full stop, comma, question mark, exclamation mark, slash, at sign and equals. That is 43 symbols in total. Anything you type that is not one of them is dropped without comment, and the status light stays green and says OK.

That single behaviour explains most of the surprises below, so it is worth seeing what it does to ordinary text before relying on the output.

What disappears, measured

Each of these was typed into the encoder and the result decoded straight back, with the status reading OK in green throughout:

Case is lost as well, which is expected: Morse has no capitals, so Hello comes back as HELLO. That one is inherent to the code. The silent deletions are not.

Read the output, not the status light. A green OK here means the encoder ran, not that it represented your text.

Several of the missing marks are in the international standard

Morse is specified by the International Telecommunication Union in Recommendation ITU-R M.1677-1, which lists the characters “that may be used and the corresponding Morse code signals”. Comparing that list against this tool's 43 symbols:

Defined by the ITU and missing here: the colon : (---...), the apostrophe ' (.----.), the hyphen - (-....-), both brackets ( and ), quotation marks, the plus sign + (.-.-.), the multiplication sign, and the accented é (..-..), which the standard lists among its letters. Also absent are the six prosigns the standard defines, including Understood, Error, Wait and End of work.

Supported here and not in the ITU list: the exclamation mark. The sequence this tool uses for it, -.-.--, is in common use but the standard's table does not define an exclamation mark at all.

The standard also handles the percent sign rather than dropping it: it says that to indicate %, “the figure 0, the fraction bar and the figures 0 or 00 shall be transmitted successively”, so 50% would be sent as 50-0/0. This tool simply deletes the sign.

Spacing here is a text convention, not Morse timing

Real Morse is made of durations, not characters. The ITU recommendation sets them out precisely: “A dash is equal to three dots”, the space inside a letter is one dot, “the space between two letters is equal to three dots”, and “the space between two words is equal to seven dots”.

This page writes one space between letters and a slash between words, which is the usual way of putting Morse into text and carries none of that timing. It tells you what to send, not how long to hold anything, and there is no audio, no flashing and no speed setting.

The slash convention has a rough edge at the margins, measured here: two spaces in a row produce two slashes, a leading space produces a leading slash, and a trailing space produces a trailing slash. Decoding an empty box gives a single ? rather than nothing.

Decoding marks what it cannot read, which is the one place it does warn you

Going the other way is stricter in a useful sense. Any sequence of dots and dashes that is not in the table becomes a question mark in the output rather than being skipped. Measured, ..--..--.. decodes to ?, and so does .-.-.-.-.-.

So a ? in decoded output means one of three things: a genuine question mark in the original message, a mistyped sequence, or a character this tool does not know. There is no way to tell which from the output alone, because the real question mark and the error marker look identical.

Letters within a word must be separated by single spaces and words by a slash. .- -... decodes to AB as one word; .- / -... decodes to A B. A full round trip on ordinary text is clean: Hello World 123 encodes and decodes back to HELLO WORLD 123.

What this tool deliberately does not do

If your text has punctuation this tool would drop, Text Cleaner will show you what is actually in it first, and Case Converter will flatten it to plain letters so you can see what will survive.

Sources

Every behaviour and every value on this page was measured against this tool as it is published, in a browser, on 14 October 2026. Each example was encoded and then decoded straight back, and the comparison against the ITU table was made character by character.

Frequently asked questions

Why did my apostrophe disappear?

Because the apostrophe is not among the 43 symbols this tool knows, and unknown characters are dropped with no warning while the status still reads OK. Measured, Don't stop! encodes and decodes back as DONT STOP!. The ITU standard does define an apostrophe, as .----., so this is a gap in the tool rather than in Morse.

Which punctuation actually works?

Seven marks: full stop, comma, question mark, exclamation mark, slash, at sign and equals. Everything else, including the colon, semicolon, hyphen, brackets, quotation marks, percent and plus, is silently removed.

Can I encode accented or non-Latin text?

No. Accented letters are dropped, so café becomes CAF, and text in a non-Latin script produces an entirely empty result that is still reported as OK. The ITU standard does include an accented é as ..-..; this tool does not.

Why is there a question mark in my decoded message?

It means one of three things and you cannot tell which: a real question mark, a mistyped sequence of dots and dashes, or a character the tool does not know. Any unrecognised sequence is replaced with ?, which is the same symbol a genuine question mark decodes to.

Does the spacing match real Morse timing?

No. This is the written convention, one space between letters and a slash between words. Real Morse is durations: a dash is three dots long, the gap between letters is three dots and the gap between words is seven. Nothing here plays or times anything.

Can I send SOS as a single prosign?

Not as a prosign. Typing SOS gives three separate letters with gaps between them, which is not the run-together distress signal. None of the ITU prosigns is supported.

Why does my text have two slashes in a row?

Because each space becomes a slash, so two consecutive spaces become two slashes, and a space at the start or end of the text leaves a slash there. Trim the text first if the output needs to be tidy.

Is anything I type sent to a server?

No. The lookup table lives in the page and the translation happens in your browser. Nothing is stored and nothing is transmitted.

Related tools