📝 博客 · 2026-08-02 · ⏱ 15 分钟

摩斯电码翻译:文字互转

摩斯电码翻译教程:字母、数字、标点转摩斯码,SOS 信号、业余无线电、密码学学习。

摩斯电码翻译在线工具通信

摩斯电码翻译:文字互转

业余无线电、密码学学习、应急求救——摩斯电码仍有应用场景。本文详解摩斯码与文字互转。

什么是摩斯电码?

摩斯电码(Morse Code)是用短信号(.)和长信号(-)表示字符的编码方式:

A → .-
B → -...
C → -.-.
S → ...
O → ---
SOS → ... --- ...

历史

1836 年美国 Samuel Morse 发明,用于电报。早期航海、军事广泛使用,后被电话取代。

现代应用

摩斯码表

字母

字母摩斯码字母摩斯码
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--..

数字

数字摩斯码
0-----
1.----
2..---
3...--
4....-
5.....
6-....
7--...
8---..
9----.

标点符号

符号摩斯码符号摩斯码
..-.-.-?..--..
,--..--!-.-.--
:---.../-..-.
;-.-.-.(-.--.
=-...-)-.--.-
+.-.-.&.-...
--....-@.--.-.
_..--.-".-..-.
$...-..-'.----.

特殊符号

含义摩斯码
SOS(求救)... --- ...
AR(消息结束).-.-.
BT(分隔)-...-
SK(通信结束)...-.-

中文摩斯码

中文需先转电报码(4 位数字)再转摩斯:

中 → 0022 → ..--- ----. ..--- ..---
文 → 2429 → ..--- ....- ..--- ----.

52tool 摩斯码翻译

工具地址:Unicode 工具(含摩斯码)

功能

实战 1:文字转摩斯码

输入:

HELLO

输出:

.... . .-.. .-.. ---

实战 2:摩斯码转文字

输入:

.... . .-.. .-.. ---

输出:

HELLO

实战 3:自定义分隔符

输入:

分隔符:/
文字:SOS
输出:.../---/...

摩斯码传输

时长规范

国际摩斯码标准时长:

单位通常是 0.1 秒(每分钟 12 词)。

声音

灯光

编程实现

JavaScript

const MORSE_CODE = {
  'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.',
  'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---',
  'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---',
  'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-',
  'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--',
  'Z': '--..',
  '0': '-----', '1': '.----', '2': '..---', '3': '...--',
  '4': '....-', '5': '.....', '6': '-....', '7': '--...',
  '8': '---..', '9': '----.'
};

// 文字转摩斯
function textToMorse(text) {
  return text.toUpperCase().split('').map(c => {
    if (c === ' ') return '/';
    return MORSE_CODE[c] || c;
  }).join(' ');
}

// 摩斯转文字
function morseToText(morse) {
  const reverseMorse = Object.fromEntries(
    Object.entries(MORSE_CODE).map(([k, v]) => [v, k])
  );
  return morse.split(' ').map(m => {
    if (m === '/') return ' ';
    return reverseMorse[m] || m;
  }).join('');
}

console.log(textToMorse('Hello'));  // .... . .-.. .-.. ---
console.log(morseToText('.... . .-.. .-.. ---'));  // HELLO

Python

MORSE_CODE = {
    'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.',
    'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---',
    'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---',
    'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-',
    'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--',
    'Z': '--..',
    '0': '-----', '1': '.----', '2': '..---', '3': '...--',
    '4': '....-', '5': '.....', '6': '-....', '7': '--...',
    '8': '---..', '9': '----.'
}

def text_to_morse(text):
    return ' '.join(MORSE_CODE.get(c.upper(), c) for c in text)

def morse_to_text(morse):
    reverse = {v: k for k, v in MORSE_CODE.items()}
    return ''.join(reverse.get(code, code) for code in morse.split())

print(text_to_morse('Hello'))  # .... . .-.. .-.. ---

播放摩斯码声音

function playMorse(morse) {
  const audioContext = new AudioContext();
  let time = audioContext.currentTime;
  
  morse.split('').forEach(symbol => {
    if (symbol === '.') {
      playBeep(audioContext, time, 0.1);
      time += 0.1 + 0.1;
    } else if (symbol === '-') {
      playBeep(audioContext, time, 0.3);
      time += 0.3 + 0.1;
    } else if (symbol === ' ') {
      time += 0.2;
    } else if (symbol === '/') {
      time += 0.6;
    }
  });
}

function playBeep(ctx, start, duration) {
  const osc = ctx.createOscillator();
  const gain = ctx.createGain();
  osc.frequency.value = 600;  // 摩斯码标准频率
  osc.connect(gain);
  gain.connect(ctx.destination);
  gain.gain.setValueAtTime(0.5, start);
  gain.gain.setValueAtTime(0, start + duration);
  osc.start(start);
  osc.stop(start + duration);
}

实战场景

场景 1:SOS 求救

紧急情况下用光、声音发 SOS:

... --- ...
短 短 短 - 长 长 长 - 短 短 短

国际通用求救信号。

场景 2:业余无线电

业余无线电爱好者用摩斯码通信:

CQ CQ CQ DE BG1ABC
(呼叫呼叫呼叫,这里是 BG1ABC)

场景 3:密码学学习

摩斯码是基础密码学内容,了解编码原理。

场景 4:CTF 比赛

CTF(Capture The Flag)竞赛中常见摩斯码题目:

题目:.... . .-.. .-.. ---
答案:HELLO

场景 5:装饰艺术

项链、印章、装饰品上的摩斯码:

"LOVE" → .-.. --- ...- .

场景 6:表白暗号

"I LOVE YOU" → .. /. .-.. --- ...- . / -.-- --- ..-

场景 7:手电筒信号

夜间用手电筒发摩斯码:

短按:.
长按(3 倍时长):-

场景 8:盲人手语

类似思路,用触觉表示摩斯码。

摩斯码速度

单位时长

通常单位 = 0.1 秒:

WPM(Words Per Minute)

业余无线电用 WPM 衡量速度:

WPM = 60 / (5 × 单位时长)

摩斯码练习

入门技巧

  1. 听音辨码:先学字符声音,不背符号
  2. 从高频字符开始:E T I A N M S O
  3. 整字记忆:不要数长短,整体识别
  4. 每日 15 分钟:坚持比集中好

推荐工具

高频字符顺序(按使用频率)

E T A O I N S H R D L C U M W F G Y P B V K J X Q Z

先学前 8 个能识别 60% 常用字符。

与其他工具配合

摩斯码 + Unicode

工具:Unicode 工具

中文转 Unicode 后再转摩斯码。

摩斯码 + Base64

工具:Base64 编解码

摩斯码字符串可 Base64 编码便于存储。

摩斯码 + 二进制

. → 0
- → 1
分隔 → 空格
HELLO → .... . .-.. .-.. ---
→ 0000 0 0111 0111 111

常见问题

Q: 摩斯码区分大小写吗?

A: 不区分。统一转大写处理。

Q: 中文能转摩斯码吗?

A: 需要先转电报码(4 位数字)再转摩斯码。直接转换工具通常只支持英文。

Q: 摩斯码还在用吗?

A: 用得少但仍有场景:业余无线电、应急求救、密码学教育、CTF。

Q: 怎么发 SOS?

A: ... --- ...,3 短 3 长 3 短。

Q: 摩斯码声音什么频率?

A: 标准 600Hz 或 1000Hz。业余无线电常用 700Hz。

Q: 工具会泄露我的内容吗?

A: 52tool 摩斯码工具在浏览器端运行,输入不上传服务器。

常见问题解答

Q: 怎么把文字转摩斯码?

A: 1) 打开 52tool 摩斯码;2) 输入文字;3) 自动转摩斯码;4) 复制结果。

Q: 怎么把摩斯码转文字?

A: 1) 输入摩斯码(空格分隔字符);2) 工具自动解析;3) 输出文字。

Q: SOS 摩斯码是什么?

A: ... --- ...(3 短 3 长 3 短)。

Q: 摩斯码能转中文吗?

A: 直接转不行。中文需先转电报码(4 位数字)再转摩斯码。

Q: 怎么用声音发摩斯码?

A: 短音(.)持续 0.1 秒,长音(-)持续 0.3 秒。字符间隔 0.3 秒,单词间隔 0.7 秒。频率 600Hz 或 1000Hz。

Q: 业余无线电还需要学摩斯码吗?

A: 自 2003 年起国际业余无线电不再强制要求摩斯码。但摩斯码仍受欢迎,尤其低功率远距离通信。

总结

摩斯码是经典通信编码:

记住:SOS 是 ... --- ...1 单位 0.1 秒国际标准频率 600Hz