首页| 版块| 我的| 发帖| 消息
主题:抄报练习工具及中文电码互译
zhangjingyu 
(昨天早上)我又回来了!欢迎欢迎!今天继续讨论关于电码互译的问题。昨晚的dianma.php功能已经实现了,但后来想到,转换后的结果如果能把电码和汉字/符号上下对应显示起来,就像汉字的拼音一样,是不是会更好?这样在发报的时候看着电码发,基本上不会发错,因为可以对照着看到发的是哪个汉字
“欢迎回来!👋 这个想法非常棒——把电码和汉字/符号上下对齐显示,就像拼音标注在汉字上方一样,确实会让发报时一目了然,大大降低出错率。

让我先确认一下你现在的 dianma.php 大致是什么形态,这样我可以给出最贴合的改法。通常有两种情况:……”(引用内容)关于显示的形式,格式等看你自己写的程序应该没有问题的。关于显示方向,汉字在上,电码在下,发报时看电码,眼睛的余光可以看到对应的汉字,我目前的感觉这样合理,但事实是不是这样,还不确定,后期可能加一个选项,来确定谁在上面。关于换行处理,先来看看不分段的情形吧……

现在的效果还不错!给你点赞!主要的感觉是汉字有些偏大,电码偏小,因为主要是看电码发报。反向翻译的时候也可以这样显示……

虽然发报时,汉字是配角,但现在的字号确实小了点,不那么明显突出了。其实汉字和电码基本上应该是平等的,现在的电码够明显了,汉字的样式也恢复成原来的看看如何。……

(码表里)9970 /,我输入的是/,它们有什么区别吗(我看不出来),是全角和半角的差异吗?“对,你观察得很准,这大概率就是全角与半角的区别。

区别在哪
半角斜线 /:ASCII 字符,U+002F,占一个字符宽度,英文/代码里用的就是它。

全角斜线 /:Unicode 全角形式,U+FF0F,占两个字符宽度(在等宽字体里看起来更宽),中文输入法下打出来的通常就是这个。

肉眼看,全角 / 更宽、更“方”一点,半角 / 更窄、更斜。在大多数中文字体里,两者并排时宽度差异是能看出来的。……”(引用内容)测试了常用的中文标点,都没有问题,就是破折号和省略号,到底是一个还是两个连在一起的?“关于破折号和省略号在中文电码里到底算一个还是两个,结论是:标准中文电码表里,它们通常各自作为一个独立的“符号”拥有一个4位码位,而不是像日常排版那样占两个汉字宽度、打成两个连续的字符。

你现在的程序逻辑是“一个字符查一个码”,所以关键在于:你的码表文件里存的是单个 Unicode 字符,还是两个连续字符的组合。

破折号
中文排版里规范的破折号占两个汉字位置,视觉上像一条长横。但在 Unicode 里,常用的 —(U+2014 EM DASH)本身只是一个字符。

如果中文电码表收录了破折号,它大概率对应的是一个单独的码位。你的程序在解析 dianma1.txt 时,如果 9970 后面跟的是一个 —,那它就是一个字符、一个码,输入时打一个 — 就能命中。如果你的输入法打出来是两个连在一起的 ——,程序会把它拆成两个 —,分别去查表,结果可能出两个码(如果表里只收了一个,第二个就会显示未收录)。

省略号
规范中文省略号是六个点,占两个汉字宽度。Unicode 里 …(U+2026 HORIZONTAL ELLIPSIS)本身是三个点,中文习惯打两个 …… 来凑六个点。

有一个非官方来源提到,中文电码里 9991 可能是“半个省略号”。这暗示标准电码表可能把省略号处理成了单个 … 对应一个码位,而不是把 ……(两个字符)整体收进去。如果这个信息准确,那你码表里 9991 后面跟的应该是一个 …,输入一个 … 就出码,输入两个 …… 则会拆成两次查询。……”(引用内容)—
[未收录]
—
[未收录]
…
[未收录]
…
[未收录](说明:破折号和省略号被拆成两部分)
标准电码应该是一个,还是两个连在一起?“根据你看到的现象(输入 — 和 … 都显示未收录),结合标准中文电码表的收录习惯,结论是:标准电码表里,破折号和省略号都是按“单个字符”收录的,不是两个连在一起。

为什么你的程序认不出来
你码表里没收录,很可能是因为字符形式对不上。中文电码表(1983年版)的尾部符号区,确实有这两个符号的码位,但形式很特殊:

破折号:对应码位是 9994,但表里收录的是 —(一个长横),有资料直接称它为“半个破折号”。你在输入法里打出的 — 如果和表里的字符在 Unicode 上不一致(比如长短、字体差异),就会对不上。

省略号:对应码位是 9991,表里收录的是 …(三个点),被称为“半个省略号”。

也就是说,标准电码表把中文排版里“占两格”的破折号和省略号,拆成了“半个”来编码。理论上,如果你要发一个完整的省略号(六个点),可能需要发两次 9991,或者发一个 9991 代表“省略的意思”。

你现在可以怎么做
zhangjingyu回帖于2026-10-18 06:21[查看电脑版]
下一页 (1/2)
下一楼»:关于译码这一块,目前来说应该差不多了。再来说说摩斯码练习吧。dianma_morse.php目前里面的数码 ..
«上一楼:虽然很晚了,但由于明天休班,想看看你说的发报练习是怎么回事?
“好,既然明天休班, ..

查看全部回帖(32)
«返回主帖