Encoding

Morse code encode/decode

Encode text (Latin and Cyrillic) into Morse code (dots and dashes) and back. Characters without a table entry are skipped.

Morse code represents every letter and digit as a combination of short (dot) and long (dash) signals. This tool encodes Latin and Cyrillic text into that system and decodes it back.

How to use it

Common uses

Things to keep in mind

Standard Morse timing: a dash is three times as long as a dot, the gap between letters equals three dots, and the gap between words equals seven.

SOS (···---···) is traditionally sent with no gaps between its letters — it's a fixed distress signal, not the result of applying the ordinary encoding rules.

Article about this tool: Morse code: how text becomes dots and dashes

Frequently asked questions

How are dots, dashes, and spaces separated in Morse code?

By convention, a single space separates dots and dashes within one letter's timing, a single space between letters, and multiple spaces (or a slash) between words. This tool follows the common single-space-between-letters, multi-space-between-words style.

Why do some characters get skipped when encoding?

Morse code has no single universal character set — it standardly covers letters, digits, and a handful of punctuation marks. Characters without a table entry, in the selected Latin or Cyrillic alphabet, are simply skipped.

Can I switch between Latin and Cyrillic Morse code?

Yes, the alphabet selector switches the lookup table used for encoding and decoding, since Cyrillic Morse code assigns different dot/dash patterns to its letters than the Latin alphabet does.

What is WPM and why is it needed?

WPM (words per minute) is the standard unit for Morse transmission speed, using the reference word "PARIS" to standardize timing. It's used to compare the speed of different operators or training programs on a single scale.

Why doesn't SOS have gaps between its letters?

SOS is historically sent as one continuous signal (···---···) with no pauses between letters — it's a distress call, not an ordinary word, so it doesn't follow the standard spacing between letters.

Articles: Encoding

Base64: why encoding is needed and how it works

How Base64 turns binary data into ASCII text and where that is actually needed.

Base32: how it differs from Base64 and when it is more convenient

The case-insensitive Base32 alphabet and scenarios where it beats Base64.

URL Encode/Decode: percent-encoding in links

How special characters in URLs and query parameters turn into %XX sequences.

HTML Entities: how to safely output special characters on a page

Why the characters < > & need escaping and how that prevents broken markup.

JWT: token structure and what "decoding" a JWT actually means

The header, payload, and signature of a JWT, and why decoding is not the same as verifying the signature.

Unicode Escape: what \uXXXX sequences mean

Where \u0041-style sequences in JSON and JS strings come from and what they mean.

ROT13 and the Caesar cipher: simple character substitution

Why shifting by 13 letters makes ROT13 self-inverse, and why anyone still uses it today.

Punycode: how internationalized domains work in DNS

How a domain with non-Latin characters gets converted into an ASCII form with the xn-- prefix.

Data URI: when to embed images directly in code

How a data: URI embeds a file’s contents directly in HTML or CSS, and when that is worth it.

Gzip + Base64: compressing data for text-based transfer

Why compressed binary data also gets Base64-encoded before going into a text field.

XML Entities: escaping characters in XML documents

The five required XML entities without which a document breaks during parsing.