三體人的回信到底是怎么編碼的?!


??大大的問號??
前幾天研究了下三體劇版中三體人回復(fù)的“不要回答”,發(fā)現(xiàn)是GB2312的區(qū)位碼,還寫了個小工具(見finedx.com)來編解碼。
結(jié)果今天看到25集,怎么又變成另一種編碼了???葉文潔翻閱的是“標(biāo)準(zhǔn)電碼本”,而不是文中所說的“自解譯系統(tǒng)”中新研制的編碼。

我在孔夫子上找到了這本書,該版本是1976年人民郵電出版社的,79年用的話時間上倒是合理了。而且電碼是更早就有的,71年發(fā)射的時候用也合理。如下圖

新版“不要回答”的編碼
回到編碼本身,看起來還是4位數(shù)字,但可以看到“不要回答”的編碼已經(jīng)不一樣,比如“不”從1827變成了0008




關(guān)于標(biāo)準(zhǔn)電碼
讓我們來看看“標(biāo)準(zhǔn)電碼本”,劇中還真是用心查閱了標(biāo)準(zhǔn)電碼,把信息認(rèn)真翻譯了一遍。
中文電碼,原本是于電報之中傳送中文信息的方法,它是第一個把漢字化作電子訊號的編碼表。1873年,法國駐華人員威基杰(S·A·Viguer)參照《康熙字典》的部首排列方法,挑選了常用漢字6800多個,編成了第一部漢字電碼本,名為《電報新書》。后由我國的鄭觀應(yīng)將其改編成為《中國電報新編》。這是中國最早的漢字電碼本。
原理其實也很簡單,莫爾斯碼可以傳輸英文字符和數(shù)字,只需要將漢字也用一串?dāng)?shù)字代替,就可以通過莫爾斯碼傳輸該數(shù)字來指代該漢字,比如用0001來指代“一”。
這個編碼方式顯而易見的問題就是,編碼表是生變硬造的,沒有規(guī)律可言,導(dǎo)致很難記住,因此電報員都需要經(jīng)過漫長艱苦的學(xué)習(xí)過程。后面的四角碼、五筆等,都因為有規(guī)律而簡化了很多。這也是我認(rèn)為不合理的主要原因:查表的編碼一定不是“自解譯系統(tǒng)”
另一個問題,是這種編碼效率很低。至少有幾種考慮方案:
霍夫曼編碼:將常用字用更短的編碼表示,以減少比特數(shù),提升信息密度
充分利用每一個比特位:電報傳輸?shù)幕A(chǔ)仍然是二進(jìn)制,10個數(shù)字>3個比特位又<4個比特位,可以考慮用十六進(jìn)制數(shù)字表示,比如編碼范圍是0000-FFFF,而不是目前的0000-9999,可以進(jìn)一步擴(kuò)大能放進(jìn)去的漢字?jǐn)?shù)量
新的編解碼工具
參考1983年郵電部的《標(biāo)準(zhǔn)電碼本(修訂本)》做了個新的編解碼工具,包含7293個中文字符(漢字、字母和符號),由于5831和7016兩個漢字現(xiàn)已廢止,9992至9995是著重號等無法單獨顯示的字符,因此可用字符共7289個。其中不包含半角字母和標(biāo)點,因此英文的編解碼會出錯。
工具同樣放在finedx,效果如圖,對照劇中葉文潔解碼的最后一個鏡頭:

