三体人的回信到底是怎么编码的?!


??大大的问号??
前几天研究了下三体剧版中三体人回复的“不要回答”,发现是GB2312的区位码,还写了个小工具(见finedx.com)来编解码。
结果今天看到25集,怎么又变成另一种编码了???叶文洁翻阅的是“标准电码本”,而不是文中所说的“自解译系统”中新研制的编码。

我在孔夫子上找到了这本书,该版本是1976年人民邮电出版社的,79年用的话时间上倒是合理了。而且电码是更早就有的,71年发射的时候用也合理。如下图

新版“不要回答”的编码
回到编码本身,看起来还是4位数字,但可以看到“不要回答”的编码已经不一样,比如“不”从1827变成了0008




关于标准电码
让我们来看看“标准电码本”,剧中还真是用心查阅了标准电码,把信息认真翻译了一遍。
中文电码,原本是于电报之中传送中文信息的方法,它是第一个把汉字化作电子讯号的编码表。1873年,法国驻华人员威基杰(S·A·Viguer)参照《康熙字典》的部首排列方法,挑选了常用汉字6800多个,编成了第一部汉字电码本,名为《电报新书》。后由我国的郑观应将其改编成为《中国电报新编》。这是中国最早的汉字电码本。
原理其实也很简单,莫尔斯码可以传输英文字符和数字,只需要将汉字也用一串数字代替,就可以通过莫尔斯码传输该数字来指代该汉字,比如用0001来指代“一”。
这个编码方式显而易见的问题就是,编码表是生变硬造的,没有规律可言,导致很难记住,因此电报员都需要经过漫长艰苦的学习过程。后面的四角码、五笔等,都因为有规律而简化了很多。这也是我认为不合理的主要原因:查表的编码一定不是“自解译系统”
另一个问题,是这种编码效率很低。至少有几种考虑方案:
霍夫曼编码:将常用字用更短的编码表示,以减少比特数,提升信息密度
充分利用每一个比特位:电报传输的基础仍然是二进制,10个数字>3个比特位又<4个比特位,可以考虑用十六进制数字表示,比如编码范围是0000-FFFF,而不是目前的0000-9999,可以进一步扩大能放进去的汉字数量
新的编解码工具
参考1983年邮电部的《标准电码本(修订本)》做了个新的编解码工具,包含7293个中文字符(汉字、字母和符号),由于5831和7016两个汉字现已废止,9992至9995是着重号等无法单独显示的字符,因此可用字符共7289个。其中不包含半角字母和标点,因此英文的编解码会出错。
工具同样放在finedx,效果如图,对照剧中叶文洁解码的最后一个镜头:

