HandyTools Hub

NATO Phonetic Alphabet

Convert text to and from NATO phonetic codes

NATO Alphabet Reference

<tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">A</td> <td class="py-2 px-3 text-blue-700 font-semibold">Alfa</td> <td class="py-2 px-3 text-slate-500 text-xs">AL-fah</td> <td class="py-2 px-3 font-mono text-slate-600">.-</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Alfa">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">B</td> <td class="py-2 px-3 text-blue-700 font-semibold">Bravo</td> <td class="py-2 px-3 text-slate-500 text-xs">BRAH-voh</td> <td class="py-2 px-3 font-mono text-slate-600">-...</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Bravo">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">C</td> <td class="py-2 px-3 text-blue-700 font-semibold">Charlie</td> <td class="py-2 px-3 text-slate-500 text-xs">CHAR-lee</td> <td class="py-2 px-3 font-mono text-slate-600">-.-.</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Charlie">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">D</td> <td class="py-2 px-3 text-blue-700 font-semibold">Delta</td> <td class="py-2 px-3 text-slate-500 text-xs">DELL-tah</td> <td class="py-2 px-3 font-mono text-slate-600">-..</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Delta">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">E</td> <td class="py-2 px-3 text-blue-700 font-semibold">Echo</td> <td class="py-2 px-3 text-slate-500 text-xs">ECK-oh</td> <td class="py-2 px-3 font-mono text-slate-600">.</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Echo">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">F</td> <td class="py-2 px-3 text-blue-700 font-semibold">Foxtrot</td> <td class="py-2 px-3 text-slate-500 text-xs">FOKS-trot</td> <td class="py-2 px-3 font-mono text-slate-600">..-.</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Foxtrot">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">G</td> <td class="py-2 px-3 text-blue-700 font-semibold">Golf</td> <td class="py-2 px-3 text-slate-500 text-xs">GOLF</td> <td class="py-2 px-3 font-mono text-slate-600">--.</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Golf">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">H</td> <td class="py-2 px-3 text-blue-700 font-semibold">Hotel</td> <td class="py-2 px-3 text-slate-500 text-xs">hoh-TEL</td> <td class="py-2 px-3 font-mono text-slate-600">....</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Hotel">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">I</td> <td class="py-2 px-3 text-blue-700 font-semibold">India</td> <td class="py-2 px-3 text-slate-500 text-xs">IN-dee-ah</td> <td class="py-2 px-3 font-mono text-slate-600">..</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="India">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">J</td> <td class="py-2 px-3 text-blue-700 font-semibold">Juliett</td> <td class="py-2 px-3 text-slate-500 text-xs">JEW-lee-ETT</td> <td class="py-2 px-3 font-mono text-slate-600">.---</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Juliett">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">K</td> <td class="py-2 px-3 text-blue-700 font-semibold">Kilo</td> <td class="py-2 px-3 text-slate-500 text-xs">KEY-loh</td> <td class="py-2 px-3 font-mono text-slate-600">-.-</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Kilo">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">L</td> <td class="py-2 px-3 text-blue-700 font-semibold">Lima</td> <td class="py-2 px-3 text-slate-500 text-xs">LEE-mah</td> <td class="py-2 px-3 font-mono text-slate-600">.-..</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Lima">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">M</td> <td class="py-2 px-3 text-blue-700 font-semibold">Mike</td> <td class="py-2 px-3 text-slate-500 text-xs">MIKE</td> <td class="py-2 px-3 font-mono text-slate-600">--</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Mike">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">N</td> <td class="py-2 px-3 text-blue-700 font-semibold">November</td> <td class="py-2 px-3 text-slate-500 text-xs">no-VEM-ber</td> <td class="py-2 px-3 font-mono text-slate-600">-.</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="November">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">O</td> <td class="py-2 px-3 text-blue-700 font-semibold">Oscar</td> <td class="py-2 px-3 text-slate-500 text-xs">OSS-cah</td> <td class="py-2 px-3 font-mono text-slate-600">---</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Oscar">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">P</td> <td class="py-2 px-3 text-blue-700 font-semibold">Papa</td> <td class="py-2 px-3 text-slate-500 text-xs">pah-PAH</td> <td class="py-2 px-3 font-mono text-slate-600">.--.</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Papa">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">Q</td> <td class="py-2 px-3 text-blue-700 font-semibold">Quebec</td> <td class="py-2 px-3 text-slate-500 text-xs">keh-BECK</td> <td class="py-2 px-3 font-mono text-slate-600">--.-</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Quebec">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">R</td> <td class="py-2 px-3 text-blue-700 font-semibold">Romeo</td> <td class="py-2 px-3 text-slate-500 text-xs">ROW-me-oh</td> <td class="py-2 px-3 font-mono text-slate-600">.-.</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Romeo">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">S</td> <td class="py-2 px-3 text-blue-700 font-semibold">Sierra</td> <td class="py-2 px-3 text-slate-500 text-xs">see-AIR-rah</td> <td class="py-2 px-3 font-mono text-slate-600">...</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Sierra">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">T</td> <td class="py-2 px-3 text-blue-700 font-semibold">Tango</td> <td class="py-2 px-3 text-slate-500 text-xs">TANG-go</td> <td class="py-2 px-3 font-mono text-slate-600">-</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Tango">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">U</td> <td class="py-2 px-3 text-blue-700 font-semibold">Uniform</td> <td class="py-2 px-3 text-slate-500 text-xs">YOU-nee-form</td> <td class="py-2 px-3 font-mono text-slate-600">..-</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Uniform">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">V</td> <td class="py-2 px-3 text-blue-700 font-semibold">Victor</td> <td class="py-2 px-3 text-slate-500 text-xs">VIK-tah</td> <td class="py-2 px-3 font-mono text-slate-600">...-</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Victor">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">W</td> <td class="py-2 px-3 text-blue-700 font-semibold">Whiskey</td> <td class="py-2 px-3 text-slate-500 text-xs">WISS-key</td> <td class="py-2 px-3 font-mono text-slate-600">.--</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Whiskey">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">X</td> <td class="py-2 px-3 text-blue-700 font-semibold">X-ray</td> <td class="py-2 px-3 text-slate-500 text-xs">ECKS-ray</td> <td class="py-2 px-3 font-mono text-slate-600">-..-</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="X-ray">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">Y</td> <td class="py-2 px-3 text-blue-700 font-semibold">Yankee</td> <td class="py-2 px-3 text-slate-500 text-xs">YANG-key</td> <td class="py-2 px-3 font-mono text-slate-600">-.--</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Yankee">Copy</button> </td> </tr><tr class="border-b border-slate-100 hover:bg-slate-50"> <td class="py-2 px-3 font-bold text-slate-800">Z</td> <td class="py-2 px-3 text-blue-700 font-semibold">Zulu</td> <td class="py-2 px-3 text-slate-500 text-xs">ZOO-loo</td> <td class="py-2 px-3 font-mono text-slate-600">--..</td> <td class="py-2 px-3 text-center"> <button class="nato-copy-ref-btn text-blue-600 hover:text-blue-800 text-xs transition-colors" data-code="Zulu">Copy</button> </td> </tr>
Letter Code Word Pronunciation Morse Copy

The NATO Phonetic Alphabet converter spells text out in the standard Alfa-Bravo-Charlie code words, shows the official ICAO pronunciation and Morse code for every character, and decodes code words back into plain text. It covers all 26 letters plus the digits 0-9, so it handles names, booking references, call signs, and passwords alike.

How to Use the Converter

Type or paste text into the input box and the output updates as you type — there is no submit button. If you enter a name like Karen, the output reads “Kilo Alfa Romeo Echo November”. The copy button puts the converted string on your clipboard for pasting into a ticket, email, or radio log.

To go the other direction, click the second mode button and paste code words separated by spaces, such as “Sierra Oscar Sierra”. The tool recognizes each word case-insensitively and collapses the result back to “SOS”. The conversion runs entirely in the browser, so nothing is sent anywhere.

Below the converter sits a reference table for the 26 letters. It lists the letter, its code word, the official pronunciation, and the Morse equivalent, with capital letters marking the stressed syllable. Each row has its own copy button if you only need one code word.

What Each Column Tells You

The reference grid has four columns, and each one answers a different question:

  • Code word — the spoken replacement for the letter, such as Lima for L or Quebec for Q.
  • Pronunciation — the ICAO-recommended stress pattern, written with the emphasized syllable in capitals: “see-AIR-rah” for Sierra, “no-VEM-ber” for November.
  • Morse — the dot-and-dash representation. A is ”.-”, B is ”-…”, and digits run from ”-----” for zero to ”----.” for nine.
  • Copy button — copies just that code word so you can drop it into a longer message.

Worked Examples

Three short conversions show how the pieces behave:

InputNATO outputAfter decoding
SOSSierra Oscar SierraSOS
7QSeven Quebec7Q
A-1Alfa - OneA-1

The SOS example is the classic distress call and uses the same Morse sequence you see in the grid: ”…” for S, ”---” for O, repeated. The 7Q example shows that digits are converted alongside letters. The A-1 example shows the pass-through behavior: the hyphen is not a letter or digit, so it stays as a hyphen token and survives the round trip.

Why the Code Words Look Strange

In voice communication, several letters sound almost identical — B and P, M and N, F and S — and a bad line makes it worse. A spelling alphabet replaces each letter with a word that stays distinct in any accent. The current list was finalized by the International Civil Aviation Organization in the 1950s after testing candidates with English, French, and Spanish speakers, then adopted by NATO.

That testing left visible marks. “Alfa” uses an F so non-English speakers do not say “Alpa”. “Juliett” has a double T so French speakers pronounce the final letter. “X-ray” keeps its hyphen because the compound word is easier to recognize than “Xray”. The digit pronunciations follow the same survival-of-the-fittest logic: Three as “TREE” and Nine as “NIN-er” cut through interference better than the everyday forms.

Spelling Digits and Using It in Practice

The reference grid covers the 26 letters, but voice work uses digits just as often — flight numbers, gate codes, latitudes, and reference IDs. The official pronunciations differ from everyday English on purpose, so learn them separately:

DigitCode wordPronunciation
0ZeroZEE-ro
1OneWUN
2TwoTOO
3ThreeTREE
4FourFOW-er
5FiveFIFE
6SixSIX
7SevenSEV-en
8EightAIT
9NineNIN-er

Because the converter treats digits like any other character, “10 Downing” becomes “One Zero Downing” rather than spelling out the number as a word. That is usually exactly what you want for reference codes, where each numeral matters individually.

Three habits make phonetic spelling work in real conversations. First, read in a steady rhythm, one code word at a time, rather than running the words together — the pauses are what let the listener keep up. Second, pause and let the other person read back what they heard; a quick “confirm that as Sierra Oscar Sierra” catches most errors before they become tickets. Third, when you only need to distinguish one ambiguous pair, you can drop the full alphabet and say a single code word, such as “D as in Delta”, which is faster than spelling an entire word.

For support agents, the biggest win is email addresses and order numbers. The letters that cause callbacks are S, F, M, N, B, P, and D, all of which blur on a poor line. Spelling those with Sierra, Foxtrot, Mike, November, Bravo, Papa, and Delta removes the guesswork. For amateur radio and aviation, the same list drives call signs and grid squares, where a single mistaken letter can put you in the wrong location. The reference table’s per-row copy buttons make it easy to build a short sequence by hand when you only need part of a word.

Common Mistakes

  • Writing “Alpha” or “Juliett” carelessly. The official forms are Alfa and Juliett; a decoder that expects the exact code word will pass a misspelling through unchanged.
  • Assuming digits are pronounced normally. One is officially “WUN” and Eight is “AIT”, not the everyday pronunciations.
  • Expecting spaces in the decoded result. The decoder returns a continuous string of characters, not the original words.
  • Treating decode as a spell-checker. Unknown tokens are returned as typed rather than flagged, so “Alfa Zulu X-ray” includes the literal word “X-ray” only because it matches the entry.
  • Mixing case rules into the reference. Lookups are case-insensitive in both directions, so capitalization never matters.

Frequently Asked Questions

Why is it spelled 'Alfa' and not 'Alpha'?

The ICAO deliberately used 'Alfa' with an F because the ph spelling is not pronounced the same way by all speakers — a non-English speaker might read 'Alpha' as 'Alpa'. The F forces the correct sound in every language, and the same logic explains 'Juliett' ending in a double T.

What happens to punctuation, hyphens, and spaces?

Spaces become separators between code words. Any character that is not A-Z, a-z, or 0-9 is passed through unchanged as its own token, so 'A-1' becomes 'Alfa - One'. When decoding, those unchanged tokens are kept and rejoined, so 'Alfa - One' comes back as 'A-1'.

Can I decode lowercase or mixed-case code words?

Yes. The lookup is case-insensitive, so 'alfa bravo', 'ALFA BRAVO', and 'Alfa Bravo' all decode to 'AB'. Unknown words are not discarded — they are passed through as written.

Why are the digits pronounced 'TREE' and 'NIN-er'?

Digits have official ICAO pronunciations chosen to survive radio static. Three becomes 'TREE' and Nine becomes 'NIN-er' because those forms are less likely to be confused with other numbers and words over a noisy channel. The tool shows the standard pronunciation for each digit.

Does decoding preserve the original word spacing?

No. Each code word maps to one character, so the decoder joins them with no spaces. A blank token from a double space is preserved as a single space, but normal word gaps are lost. Spell a sentence and the decoded output is a single run of letters.

Is the NATO alphabet the same as the ICAO or aviation alphabet?

In practice, yes. ICAO finalized the spelling alphabet in the 1950s and NATO adopted the same word list, so pilots, air traffic control, marine radio, and amateur radio all use these identical code words and digit pronunciations.

Reviewed by the HandyTools Hub team · Last updated