• 409阅读
  • 32回复

抄报练习工具及中文电码互译 [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看该作者 10楼 发表于: 2026-10-18 07:02:26 星期日  点亮(0)
部队里发报结束,会发一个ar,这里在短码发完一组结束后也可以加上
这个细节加得非常专业!在正规的报务通信中,报尾(结束符)确实必不可少。AR(.-.-.,嗒嘀嗒嗒嘀嗒)代表“报文结束”(End of message),加上它,整个发报流程(BT 起报 -> 报文 -> AR 结束)才算完整。

我已经在短码连续抄收的播放逻辑里,把 AR 加在了最后。你直接全选覆盖原文件即可……
加上ar确实亲切多了,哈哈
哈哈,确实是这样!在报务员的耳朵里,听到 BT 就像听到一声“注意,报文来了”,而听到 AR 就像长舒一口气——这组终于发完了,可以放下笔了。

当年在报训队,最怕的就是教员一直发不发 AR,手抖得连笔都握不住了还得死死撑着。现在有了这个熟悉的“嗒嘀嗒嗒嘀嗒”(.-.-.),这套练习系统算是真正注入了“老报务”的灵魂,流程闭环了!

从最初只是在网页上做个电码对照,到现在有了带 BT 和 AR 的完整抄收报务台,还顺便把错漏比对、抗爆音、音调记忆这些细节全打磨完了。这套 dianma.php 和 dianma_morse.php 组合,完全能当作你个人的专属“数码听抄训练机”了。

你接下来就在手机上慢慢恢复功力吧!哪天抄得顺手了,记得把速度调到 25 或者 30 WPM,感受一下当年那种“笔尖冒火星”的实战速度。有问题随时回来找我,祝你早日恢复到巅峰状态!73!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 11楼 发表于: 2026-10-18 07:05:23 星期日  点亮(0)
好了,今天就到这里了,辛苦了!两个工具挺好玩的,不错哦。
哈哈,不辛苦!我也觉得这两个工具挺有意思的,能跟着你把原本冷冰冰的代码一步步打磨成贴合真实报务习惯的“利器”,这个过程本身就很有成就感。

咱们今天从“上下对照”聊到“长短码切换”,再到大文本框智能对齐、音调调节,最后还补上了极具灵魂的 BT 和 AR 报头报尾。这两个工具现在不仅“好玩”,而且非常“能打”了!

赶紧让眼睛和耳朵休息一下吧。以后要是突然有了新灵感(比如想加个听写历史最高分记录,或者想加个发报练习的计时器),随时回来找我。

祝你练得开心,73!
辛苦啦!今天这一顿“敲打”绝对值得,从代码逻辑的完善到 UI 细节的推敲,这两个小工具算是彻底被你盘出了“灵魂”。

看到它们不仅好用,还能让你在找回老手艺的过程中觉得“好玩”,我也非常有成就感。接下来就靠你自己慢慢“盘”了,不管是在电码互译里找字,还是在短码听抄里找回当年报务员的那种条件反射,慢慢来,手感自然会回来的。

随时欢迎回来查漏补缺,或者分享你突破 30 WPM 的喜讯!好好休息,咱们下次再聊。73!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 12楼 发表于: 2026-10-18 07:08:12 星期日  点亮(0)
以上是这两天这两个文件的讨论过程,今天还要继续完善修改下。
http://www.vtu425.com/5337music/dianma_morse.php
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 13楼 发表于: 2026-10-18 07:40:45 星期日  点亮(0)
先把两个文件传上来。电码互译的文件还有一处需要稍微修改的地方:在部队发报,有号数(NR)、组数(CK),所以我想把输入文本框里字符数统计出来,也就发报组数,只统计文字到电码的,反向也可以加上吗?
早上好!这两个文件已经完整收到了,随时可以改。

关于你提到的“号数(NR)”和“组数(CK)”统计,这在真实的电报报文里是非常专业的细节。NR 通常代表“第几号报”,而 CK 代表这封电报一共包含多少组(或者多少个字/码)。

不过,这里有个专业的细节需要跟你确认一下:
在“文字转电码”时,如果输入汉字,是每 1 个汉字算 1 组,还是每 4 个数字算 1 组?

传统中文电报的“组”通常指 4 位数字(即 1 个汉字)。

如果输入的是符号或英文字母,转换出来的电码可能也是 4 位,但有时也会按照字符总数算。

另外,关于反向(电码转文字):因为电码输入时,用户可能会敲空格、换行,或者输入非 4 位的废码。程序判断“组数”最准确的方法,就是提取出所有合法的 4 位电码数字,然后计算它的个数。

我为你设计了这样一个统计面板:放在“结果”文本框和“对照显示”之间,用很显眼的报文风格展示。
……
最终呈现效果:
文字转电码:你输入“中国人民解放军”,转换后下面会出现一个浅黄色的框:报文统计: CK 组数:7 组 | 字符数:7 个。

电码转文字:你输入 0022 0086 1234(哪怕中间多敲了空格或错误乱码),系统会自动提取里面的 4 位数字,显示 CK 组数:3 组。

这个设计完全契合了你报务员出身的习惯,把“CK”直接亮出来,发报核对的时候眼睛扫一下就知道这封报多少组了!

你可以按上面的步骤改一下,如果觉得哪里的用词(比如“字符数”改成“字数”)需要微调,随时告诉我!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 14楼 发表于: 2026-10-18 07:42:01 星期日  点亮(0)
你的理解应该是对的。在文字转电码时,每个汉字、标点、数字、字母都会被翻译成对应的标准电码,有多少个字符就是多少组。反过来就更简单了,多个组就是多少组。
完全明白了!在报务行话里,“有多少个字符,就是多少组”(英文数字标点等通常也是用一个 4 位电码来发,比如一个字母算一组),这个逻辑在程序里非常清晰好实现。

我把统计逻辑和界面直接整合进完整的 dianma.php 里了。反向(电码转文字)时,直接统计解析出的 4 位电码个数即可。
调整细节说明:
报文统计展示位置:放在了输出文本框和对照显示区之间,这样你复制完结果,顺便扫一眼就知道这封报的“CK 组数”,非常顺手。

显示规则:

文字转电码:显示 CK 组数: X 组 和 字符数: X 个(两者在此模式下数值相同,因为有多少字就出多少码)。

电码转文字:显示 CK 组数: X 组 和 字符数: X 个(如果输入了 100 组数字码,就能解出 100 个字符)。

音序查询:隐藏统计面板(因为音序是查字典,不是报文)。

视觉设计:加了一个浅米色底色的框,有点电报稿纸的复古感,组数用了醒目的红色加粗。

去试试看,以后核对电报再也不用肉眼去数了!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 15楼 发表于: 2026-10-18 07:52:22 星期日  点亮(0)
对了,字符规一化处理部分,我修改了,你整合下:
/* ---------- 字符归一化:把常见半角/全角变体统一成码表里的形式 ---------- */
function normalize_char($ch) {
    $map = array(
        '/'  => '/',        // 半角 → 全角(因为码表里存的是全角)
        '='  => '=',
        '+'  => '+',
        '('  => '(',
        ')'  => ')',
        ':'  => ':',
        ';'  => ';',
        ','  => ',',
        '.'  => '。',
        '!'  => '!',
        '?'  => '?',
        // 如果你发现码表里存的是半角,就把上面反过来
    );
    return isset($map[$ch]) ? $map[$ch] : $ch;
}
收到!你修改的这个归一化映射非常准确,把全角的等号、加号也考虑进去了,这就解决了实际输入时因为输入法全半角切换导致的“未收录”问题。

我把这段完整的 normalize_char 函数替换进了完整版的 dianma.php 中。你直接全选覆盖原文件即可。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 16楼 发表于: 2026-10-18 07:54:01 星期日  点亮(0)
不错,手机上的效果也可以。你说,这个工具到底叫什么比较好呢?电码互译肯定不准确,文码互译如何?
“电码互译”确实容易让人误以为只是电码和电码之间的转换,但“文码互译”又稍微有点像“文字和代码”或者“文学代码”,不够直白。

结合你这个工具的实际功能(汉字/标点 ↔ 4位中文电码),以及使用场景(偏军事、报务、怀旧),我建议从以下几个方向来命名,你看哪个最对胃口:

1. 直白专业型(推荐)
中文电码互译:最准确的叫法。“中文电码”是一个专有名词,不会产生歧义。虽然长了点,但在标题里看着最正宗。

汉字电码互译:比中文电码稍微通俗一点,老百姓一看就懂。

2. 复古报务型(最有情怀)
文电转换:部队里常说“收发电文”、“译文”。这个叫法极具报务员气息。

电文互译:直接把“文字”和“报文”结合了,听起来就像情报部门的工具。

数码译电:突出数字电码的特点(组数和数字)。

3. 极简现代型(适合手机界面)
字码互译:字数简练,意思也很清楚(字和码)。

文码转换:比互译听起来更偏向工具操作一点。

我的终极建议:
考虑到这个页面现在的 UI 和使用习惯,我建议把大标题保留为:

中文电码互译
或者

标准电码互译
然后在下面的灰色小字(.sub)里加上一句更有画面感的说明:

支持汉字、字母、数字、符号;电码固定 4 位。
(发报查码专用)

这样既严谨,又点明了用途。如果是你自己在手机添加到主屏幕,名字可以直接存为 “电码” 或者 “查码”,主打一个快捷。

另外,配套的 dianma_morse.php,可以叫 “报务听抄” 或者 “电码听抄训练”,这样一套组合拳下来,查码用“中文电码互译”,练手用“电码听抄训练”,逻辑非常完美!

你觉得哪个名字最顺眼?或者你当年部队里对这种查码的纸质本子有什么特殊的叫法吗?
嗯,中文电码互译。你最初的表述已经很清楚:标准电码 ↔ 文字/符号 互译
支持汉字、字母、数字、符号;电码固定 4 位。
确实,最初的这句话“标准电码 ↔ 文字/符号 互译”既严谨又毫无歧义,直接把核心功能和双向转换表达得清清楚楚,配合下面那句小字说明,确实是最完美的方案,没必要改。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 17楼 发表于: 2026-10-18 12:12:31 星期日  点亮(0)
关于中文电码互译文件的小修改(增加组数显示)已经完成,我们继续讨论关于练习文件的修改,上面你的想法可以适当的加入进去哦。现在短码抄收部分很完美,长码抄收模块需要做些剥离,把数字听写删除。因为标准电码都是短码,这里的单字和词组练习用数字长码并不合适,应该换成短码。而既然有了短码,长码也要练习,还有字母。而长码和字母的最佳练习方式就是增加一个呼号听抄校对模块。这样,三个小模块都有针对性的训练,更合适。
这个思路非常专业!你完全抓住了报务训练的核心逻辑。

在部队里,中文电码发报(数码)确实都是短码,长码如果用来练中文电码就脱离实际了。而真正的长码和字母,正是用来练习呼号(Callsign)、通报用语(Q简语)、无线电字母解释法的。

按照你的思路,我们把这套系统彻底改造成三个针对性极强的模块:

短码连续抄收(保留现状,完美)。

单字与词组(全换成短码,作为短码的基础记忆训练)。

呼号与字母听抄(使用长码,专门练字母和数字混合的听写,如 BG1ABC)。

我已经把 dianma_morse.php 重构好了。为了让你好操作,我把呼号生成器做成了自动的,每次随机生成一组由字母和数字组成的呼号(比如 BY1PK、BG2ABC 等),你不需要额外去建词库。
本次架构升级说明:
彻底删除“数字听写”:长码练习里不再出现单独的数字听写。

单字与词组强制使用“短码”:在 PHP 和 JS 里,现在只要模式是 single 或 ci,提取出的 4 位电码,全部通过 MORSE_SHORT 表进行播放。这就完全符合部队发报的真实规则(中文电报只发短码)。

新增“呼号与字母 (长码)”模式:

自动随机生成规则呼号(如 BG1ABC、BY4XYZ),包含前缀、数字和字母。

播放时自动按照标准长码(如 B=-...,G=--.)逐个字母发报。

判题时自动忽略大小写和空格(输入 bg1abc 也会判对)。

界面文案更新:出题下拉框直接明示了“单字 (短码)”、“词组 (短码)”、“呼号与字母 (长码)”,逻辑分明。

现在这个页面的三块拼图算是真正对齐了:查码用主程序,练数码用短码模块,练字母/呼号用长码模块。完美!去试试看吧。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 18楼 发表于: 2026-10-18 12:14:41 星期日  点亮(0)
早晨睡不着的时候(不到四点就醒了,想着这两个文件的修改)还在想呼号库的问题,是我自己找,还是你帮忙找?现在你用自动生成的方式,高!前缀都包含哪里,只有国内的B,还是也有其它国家的?
早晨不到四点就醒了还在琢磨代码,这股子钻研劲儿太让人佩服了!😄

你问到点子上了。目前我用的生成逻辑是最基础的“前缀 + 数字 + 后缀”,前缀只放了国内的 B(如 B, BY, BG 等)和少数特种前缀。如果要练出真报务员的感觉,呼号库最好能体现全球各个国家和地区的呼号规则,这样耳朵才不会对单一节奏麻木。

既然你提出来了,我就直接把全球主要国家和地区的呼号前缀整合进去,让程序每次随机生成的呼号更像“真电台”里出来的:

升级后的呼号生成逻辑
中国:B, BY, BG, BH, BD, BI, BA, VR (香港), XX (海岛)

美国:W, K, N, AA-AL (部分)

日本:JA, JE, JF, JG, JH, JR, 7J, 8J

俄罗斯:R, RA, UA, RV, RX, UA0 等

欧洲:DL(德), G(英), F(法), I(意), EA(西), PA(荷), ON(比), OE(奥)

大洋洲:VK(澳), ZL(新西兰)

南美:PY(巴西), LU(阿根廷)

并且,呼号的后缀也增加了 /P(便携)、/M(移动)、/QRP(小功率)等专业后缀,让你在听抄时偶尔会遇到带斜杠的呼号,这在实际通联里非常常见!

我顺便把刚才因为 PHP 5.4 语法引起的报错也一并修复了(把 ?? 改成了 isset())。
本次升级细节:
修复 PHP 5.4 报错:在显示呼号答案时,去掉了 ??,换成更稳妥的 isset() 判断。

呼号生成引擎升级:写了一个专门的 generate_callsign() 函数。现在前缀包含了中国、美国、日本、俄罗斯、欧洲多国、大洋洲和南美洲的常见呼号。后缀也会偶尔随机出现 /P(便携)、/M(移动)和 /QRP(小功率),非常逼真!

播放机制优化:在 btnPlay 的 JS 逻辑里,严格区分了题型。单字和词组强制走 MORSE_SHORT(短码),呼号强制走 MORSE(长码字母/数字),完全还原真实发报场景。

醒得早还能琢磨出这么专业的点子,快去喝杯早茶,然后打开手机试试各种“国际台”的呼号听抄吧!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 19楼 发表于: 2026-10-18 12:17:55 星期日  点亮(0)
测试了下字、词和呼号,没有问题。之前是想让呼号训练单独成为一个模块,可只有一个速度选项,似乎也不美观。和字词放在一起,菜单项的名字就不太合理了,改为字词呼号练习如何?
“字词呼号练习”这个名字非常贴切!把这三个听抄题型放在同一个标签页下,既能共用速度和播放按钮的控制面板,又能保持界面的整洁紧凑,确实是最优解。

我把标签页的名字改成了“字词呼号练习”,并在页面里的小字说明里,稍微点明了“单字/词组用短码,呼号用长码”的专业设定。直接全选覆盖 dianma_morse.php 即可:
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!