摩斯电码转换

文本与摩斯电码(.-)互相转换,支持中文

摩斯电码的编码规则与时序标准

它不是定长编码

摩斯电码用两种信号(短点与长划)表示字符,但每个字符占用的信号数不同。字母 E 是单个点,T 是单个划;而数字统一 5 个信号,标点通常是 6 个。

这种设计的思路和霍夫曼编码一样:英文中出现频率越高的字母,编码越短。E、T、A、I、N 都是 1-2 个信号,而 Q、Y、Z 都是 4 个。这让整段报文的平均长度最短。

时序规范(ITU-R M.1677)

摩斯电码的关键在于时长比例,而不是绝对速度。以"一个点"的时长为 1 单位:

元素时长(单位)
点1
划3
同一字符内信号间隔1
字符之间间隔3
单词之间间隔7

所以 ...---... 是 SOS,中间不加空格;而 ... --- ... 是两个单词边界的写法。收报方就是靠间隔长度区分字符与词——间隔错了,同一串信号能被解读成完全不同的内容。

为什么会出现歧义

去掉字符间空格之后,一段点划序列的解读不是唯一的。举例:.... 可以是 H(四个点),也可以是 EEEE、IE、SI 等等,取决于在哪里切分。真实电报靠严格的时序(或分隔符)来消除这种歧义。

这也是纯文本转换时要注意的地方:编码必须输出分隔符,否则解码无法保证还原。有的工具用空格分隔字符、用 / 分隔单词;有的用单个空格分隔字符、三个空格分隔单词。互操作前先确认约定。

今天还在哪里用到

工具支持文本与摩斯电码互转,可选字符间分隔符(空格或 /),对大小写不敏感,全部在浏览器本地完成。

常见问题

支持中文吗?

摩斯电码本身只定义英文字母、数字和常用符号,中文无法直接转换,会跳过。