A Morse code translator swaps every letter, digit and punctuation mark for a
fixed pattern of dots and dashes. There is no maths in it and no key. A is
always .-, S is always ..., and once you have the table in front of you,
you can do exactly the same job on paper.
The part that trips people up is the spacing. Letters are separated by one
space, words by a slash. So HELLO WORLD comes out as
.... . .-.. .-.. --- / .-- --- .-. .-.. -... Move the gaps and the same run of
dots says something else entirely.
Anything the code has no character for (accents, other scripts, capital letters, emoji) has nowhere to go. That is not a flaw in the tool you are using. The international code covers 26 Latin letters, the ten digits and 16 punctuation marks, and stops there.
Want to hear your text instead of just reading it? MorseLab plays anything you type back as a tone, flashlight blink or vibration, free and offline.
What a translator actually does
It looks each character up in a table and prints what it finds. That is the whole mechanism. There is no compression, no encryption, no cleverness.
Two things follow from that, and both matter.
Morse is a code, not a cipher. A code replaces symbols with other symbols by public agreement. A cipher hides meaning with a secret. Morse has no secret: the table is published in ITU-R Recommendation M.1677-1, and anyone who can hear your beeps can read them. Use it to get a message through noise, distance or darkness, never to keep one private.
The gaps carry as much information as the marks. The code is not
self-separating (. is E, .. is I, ... is S, .... is H), so a dot run on
its own is ambiguous:
.... H (one letter, no gaps)
.. .. I I
... . S E
. . . . E E E E
Four dots, four different readings, and those are not even all of them. Only the spacing tells them apart. A translator that drops the gaps has not translated anything.
How to write Morse so it survives copy and paste
Write the dot as a full stop and the dash as a hyphen. Plain keyboard characters, nothing else.
| Part | Write it as | Example |
|---|---|---|
| Dot | a full stop, . | E is . |
| Dash | a hyphen, - | T is - |
| Gap inside a letter | nothing | A is .-, not . - |
| Gap between letters | one space | AT is .- - |
| Gap between words | space, slash, space | .- - then / then the next word |
This sounds fussy until you try to paste someone else's Morse into a tool and watch it fail. Pages love to prettify dots into typographic bullets and dashes into en dashes, because they look neater. They are different characters. A decoder sees a symbol it has no entry for and gives up, and you cannot tell by looking. If a string will not decode anywhere, retype it with a real full stop and a real hyphen first.
Operators say the marks out loud as dit and dah: .- is "di-dah".
That is worth knowing when you start listening rather than reading, because you
will never hear a dot.
Translate a word by hand
Take MEET AT 8. Look up each character, put one space between letters and a slash between words.
M --
E .
E .
T -
/
A .-
T -
/
8 ---..
Run it together:
-- . . - / .- - / ---..
Case makes no difference. Morse has no capitals, so "Meet at 8" and "MEET AT 8" produce the same string. Most people write the source text in capitals out of habit, and because it is a reminder that the case is gone.
The lookup table
This is the whole International Morse code for letters and digits. A translator holds nothing more than this.
Letters
| Letter | Code | Letter | Code |
|---|---|---|---|
| A | .- | N | -. |
| B | -... | O | --- |
| C | -.-. | P | .--. |
| D | -.. | Q | --.- |
| E | . | R | .-. |
| F | ..-. | S | ... |
| G | --. | T | - |
| H | .... | U | ..- |
| I | .. | V | ...- |
| J | .--- | W | .-- |
| K | -.- | X | -..- |
| L | .-.. | Y | -.-- |
| M | -- | Z | --.. |
The patterns are not all the same length. E and T take one element; Q and Y take four. Common letters carry the shortest patterns, which is what keeps ordinary text quick to send.
Digits
Every digit is exactly five elements, and they follow a rule you can reconstruct without looking:
| Digit | Code | Digit | Code |
|---|---|---|---|
| 1 | .---- | 6 | -.... |
| 2 | ..--- | 7 | --... |
| 3 | ...-- | 8 | ---.. |
| 4 | ....- | 9 | ----. |
| 5 | ..... | 0 | ----- |
One to five add dots from the left, one at a time, until five is all dots. Six to zero mirror that, adding dashes from the left, until zero is all dashes. Learn the shape and you never need the row again. Morse code numbers and punctuation goes through it slowly.
Punctuation people actually type
The standard defines 16 marks. These are the ones that turn up in real messages:
| Mark | Code | Mark | Code |
|---|---|---|---|
. | .-.-.- | ! | -.-.-- |
, | --..-- | / | -..-. |
? | ..--.. | @ | .--.-. |
' | .----. | - | -....- |
Punctuation is long, five to seven elements each, which is why operators drop most of it and let the words carry the meaning.
What a translator does with everything else
Anything outside those tables has no code. That includes accented Latin letters, every non-Latin script, and every emoji. There is no correct output for them, so different tools behave differently: some silently delete the character, some strip the accent and send the base letter, some print a placeholder. None of those is a translation, so check what yours does before you trust a result.
| Input | What the standard has | Sensible behaviour |
|---|---|---|
hello | The 26 letters, case-free | Same output as HELLO |
2026 | All ten digits | ..--- ----- ..--- -.... |
café, niño | Nothing for é or ñ | Send the base letter and say so |
| Arabic, Japanese, Devanagari | Nothing | Transliterate first, or do not send |
| Emoji | Nothing | Drop it |
For anything outside the Latin alphabet, the practical answer is to romanise the text yourself, so you decide what it becomes rather than the tool deciding for you.
One more thing that is out of scope: the older American or railroad Morse, which used internal gaps inside some characters. It is obsolete. Every translator worth using means the international code, and so does the rest of this series.
Turning text into sound
A written string is only half the job. Morse was made to be heard, and the sound has strict proportions. Everything is measured in units, where one unit is the length of a dot.
| Element | Units |
|---|---|
| Dot | 1 |
| Dash | 3 |
| Gap between elements inside a character | 1 |
| Gap between characters | 3 |
| Gap between words | 7 |
A dash is not "a bit longer" than a dot. It is exactly three times as long, and that ratio is what makes the code readable by ear at any speed.
Speed is quoted in words per minute against the reference word PARIS, which is exactly 50 units long counting the word gap after it. From that comes one piece of arithmetic worth memorising:
Dot length in seconds = 1.2 ÷ WPM.
| WPM | Dot | Dash | Gap between letters | Gap between words |
|---|---|---|---|---|
| 5 | 240 ms | 720 ms | 720 ms | 1,680 ms |
| 12 | 100 ms | 300 ms | 300 ms | 700 ms |
| 20 | 60 ms | 180 ms | 180 ms | 420 ms |
| 25 | 48 ms | 144 ms | 144 ms | 336 ms |
You can price a message from that. HELLO WORLD is 111 units end to end: 49 for HELLO, 7 for the word gap, 55 for WORLD. At 20 WPM one unit is 60 ms, so the whole thing takes about 6.7 seconds. At 5 WPM the same message runs to nearly 27 seconds. Morse code timing and WPM goes further into the arithmetic.
I built MorseLab partly because I wanted a translator that plays the result rather than just printing it. You type or paste text, pick a tone, a screen flash, the flashlight or vibration, and set the speed, and it goes the other way too, decoding live Morse audio through the microphone and reading printed text through the camera. It works with no signal and no account, in 16 languages.
Copy these
Ready to paste. Letters separated by spaces, words by slashes.
SOS ...---...
HELLO .... . .-.. .-.. ---
HELP .... . .-.. .--.
YES -.-- . ...
NO -. ---
OK --- -.-
GOOD LUCK --. --- --- -.. / .-.. ..- -.-. -.-
THANK YOU - .... .- -. -.- / -.-- --- ..-
I LOVE YOU .. / .-.. --- ...- . / -.-- --- ..-
HELLO WORLD .... . .-.. .-.. --- / .-- --- .-. .-.. -..
Look closely at the first line. SOS has no spaces in it, and that is deliberate.
It is a prosign, sent as one unbroken run of three dots, three dashes and three
dots, with no letter gaps inside. Sent as three separate letters, ... --- ...,
it is a different signal. It also does not stand for "Save Our Souls": that
came later, invented to explain a pattern that was chosen because it is
unmistakable and easy to send. SOS in Morse code
covers the rest of it.
Your own name works the same way as any other word: look up each letter, one
space between them. MARIA is -- .- .-. .. .-. There is a walkthrough in
how to write your name in Morse code,
and more ready-made phrases in
common words in Morse code.
Going the other way
Decoding is the same table read backwards, with one catch: the input has to be
spaced properly or the reading is a guess. Given -.-...-, a decoder cannot
know whether you meant -.-. ..- (CU) or -.- ...- (KV) or something else. The
gaps are the information.
There is a second catch. Some strings are legitimately two things at once, because prosigns share patterns with punctuation:
| Same dots and dashes | Reads as | Also reads as |
|---|---|---|
-...- | the = sign | the prosign BT, meaning break |
.-.-. | the + sign | the prosign AR, meaning end of message |
-.--. | an opening bracket ( | the prosign KN, go ahead, named station only |
Context decides, which is a thing a human does better than a table. Prosigns, Q-codes and the NATO alphabet explains where each one is used.
Decoding a live sound is a harder problem again, because the machine has to measure the gaps before it can use them, through whatever noise is in the room. Morse code decoder: turning a beep back into words covers what that takes.
Common mistakes
Prettified dots and dashes. Typographic bullets and en dashes look right and decode nowhere. Retype them.
No gaps. A run of dots with nothing between them is a dot count, not a
message. HELLO needs its spaces: .... . .-.. .-.. ---.
Spelling SOS out as letters. It is one unbroken prosign, ...---....
Expecting privacy. The table is public. Morse hides nothing.
Trusting a translation of a string you cannot see the spacing in. If the spaces have collapsed, the output is fiction.
Thinking a translator teaches you the code. It converts. Reading Morse by ear is a separate skill that takes weeks of daily listening. You can memorise the chart in a day, but that is not the same thing. How to learn Morse code sets out a realistic plan.
Questions people ask
How do I translate text into Morse code?
Look each character up in the table above, put one space between letters and a slash between words. A tool does it instantly, and the result is identical to what you would get by hand. There is only one correct answer per character.
What do the spaces and slashes mean?
A space is the gap between two letters. A slash is the gap between two words. In sound they are different lengths: three units between letters, seven between words.
Does Morse code have capital letters?
No. The code has one pattern per letter and no way to mark case, so hello and
HELLO translate to the same dots and dashes. Case is lost in translation and
cannot be recovered by a decoder.
Can a translator handle my language?
Only the parts written in the 26 Latin letters, the digits and the 16 punctuation marks. Accented letters and non-Latin scripts have no code in the international standard. Romanise the text first so you control what gets sent.
Is Morse code a secret code?
No. It is a public table, printed in the standard and in every reference book. Anyone who hears the beeps can read them. It solves distance and noise, not privacy.
Can you translate Morse code back into text?
Yes, as long as the spacing survives. The same table read backwards gives the letters. Ambiguity only appears when the gaps are missing, or where a prosign shares a pattern with a punctuation mark.
Is there a Morse code translator that works offline?
Yes. A translator needs nothing but the lookup table, so there is no reason for one to require a connection. An app that holds the table locally will convert, play the tone and blink the light with no signal at all.
How fast should the playback be?
Start around 5 to 12 WPM if you are checking your own work by ear, where a dot lasts 240 ms to 100 ms. If you are learning to copy, keep the characters at full speed and stretch the gaps instead. That is the Farnsworth idea, and it combines with Koch's character ordering rather than competing with it — see Koch vs Farnsworth.
Download it: MorseLab for iPhone and Android. Free, and the link picks the right store for you.
Keep reading
- The Morse code alphabet chart — every letter, number and punctuation mark in one place.
- Morse code timing and WPM — the 1:3:7 ratio and the PARIS standard.
- Morse code decoder: turning a beep back into words — the reverse direction, done by ear and by microphone.
- How to send Morse code with a phone flashlight — the same string, sent as light.
- Morse code: the complete guide — where everything else in the series fits.



