KKwikfig.

Morse Code Translator

Translate text to Morse code and Morse code back to text, with the full A–Z and 0–9 code table on the page and both directions handled in your browser. Runs entirely in your browser — your numbers never leave this device.

Direction
Text
Morse code

How it works

Each letter and digit maps to one International Morse code of dots and dashes | In encoded text, letters within a word are separated by one space and words by “ / ” | Decoding reverses the same table
International Morse code — letters A–Z and digits 0–9
LetterCodeLetterCode
A.-S...
B-...T-
C-.-.U..-
D-..V...-
E.W.--
F..-.X-..-
G--.Y-.--
H....Z--..
I..0-----
J.---1.----
K-.-2..---
L.-..3...--
M--4....-
N-.5.....
O---6-....
P.--.7--...
Q--.-8---..
R.-.9----.

Type text and the translator encodes it using the International Morse code table printed below — the ITU standard in which each letter and digit has exactly one pattern of dots (short signals) and dashes (long signals). In the written form used here, the letters of a word are separated by single spaces and words are separated by “ / ”, so “HELLO WORLD” becomes “.... . .-.. .-.. --- / .-- --- .-. .-.. -..”. Input case does not matter; encoding works on the uppercase form of every character.

Decoding runs the same table backwards. Paste Morse with spaces between letters and either “ / ” or a double space between words, and the translator returns lowercase text. A code group that is not in the table decodes as “?”, marking its position honestly instead of silently dropping it — mistyped or non-standard groups stay visible so you can correct them. Characters outside the table (most punctuation beyond the standard set included in the code, such as brackets) are passed through unchanged when encoding, which is worth knowing before you encode a sentence full of symbols.

The full letter and digit table is printed on this page because it is the substance of the tool: with it, you can encode or decode by hand, check the translator, or learn the handful of codes — SOS above all — that are worth knowing by heart. Translation happens entirely in your browser; your messages are never uploaded or stored.

Worked examples

The distress signal: SOS

Input
SOS (encode)
Working
S is three dots, O is three dashes, S is three dots — the pattern chosen historically because it is unmistakable, not because of any words it stands for.
Result
... --- ... — and decoding “... --- ...” returns: sos

A greeting, word separator shown

Input
HELLO WORLD (encode)
Working
Each letter is encoded and space-separated; the two words are joined by “ / ”. H is four dots, W is .--, and the full string is given as the result.
Result
.... . .-.. .-.. --- / .-- --- .-. .-.. -..

Digits: the year 2026

Input
2026 (encode) — and “Kwikfig 2026” as a round trip
Working
Digit codes are all five elements long: 2 is ..---, 0 is -----, 6 is -.... Encoding “Kwikfig 2026” gives “-.- .-- .. -.- ..-. .. --. / ..--- ----- ..--- -....”, and decoding that string returns the original text in lowercase.
Result
2026 → ..--- ----- ..--- -.... · round trip returns: kwikfig 2026

Frequently asked questions

What does SOS stand for?

Nothing — that is a common myth. The sequence ... --- ... was adopted as the international distress signal because three dots, three dashes, three dots is easy to send and impossible to mistake for anything else. Backronyms like “Save Our Souls” came later. Encoded on this page, SOS gives exactly “... --- ...”.

How are words separated in written Morse?

Letters within a word are separated by one space, and words by “ / ” (space, slash, space) in this translator's output. When decoding, the tool also accepts a double space as a word separator, which matches how Morse is often typed. If your input uses single spaces everywhere with no word gaps, it will decode as one long word — add the separators and decode again.

Why did part of my Morse decode as question marks?

A “?” in the output marks a code group that is not in the International Morse table — usually a typo, a merged pair of letters (two codes typed without the space between them), or a non-standard code. The position of the “?” tells you exactly which group to fix; nothing is silently skipped.

Does it handle punctuation and accented letters?

Standard punctuation that has an assigned code is included — full stop, comma, question mark, apostrophe, exclamation mark, slash, brackets, colon, semicolon, equals, plus, hyphen, underscore, quotation mark, dollar sign and @. Accented letters have no codes in the international table used here and are passed through unchanged when encoding, so check the output if your text contains them.

Why are digit codes five elements long when letters are shorter?

By design of the code: the most frequent letters got the shortest patterns (E is a single dot, T a single dash), while digits, used less often in early telegraphy, were given uniform five-element patterns. That regularity makes digits easy to recognise and to count off: 1 through 5 add one dot at a time from .---- to ....., and 6 through 0 add dashes back from -.... to -----.

Are my messages uploaded anywhere?

No. Encoding and decoding run in your browser; your text is never sent to a server, stored or tracked.

Related tools

More in Text Tools · Browse all tools