背景
使用UTF-8编码表达相同的意思,需要的字节数,俄语是英语的2倍。
使用UTF-16编码,英语是汉语的3倍。
如何做到“不同语言表达相同意思,所需编码长度大致一样”?本文做出了尝试。
方案
26+262+263=18278,15比特
首字母大写?是单词的结尾?,2比特
共15+2=17比特
汉字有8.5万个,也是17比特
日语有平假名142个,片假名71个,共213个。
213+2132=45582,16比特
世界上有语言6000多个,13比特
13+2+17=32
用32位表示一个汉字,或一到三个英文字母。这么一来,汉语和英语表达相同意思,大体上就一样长了。
若是日语,用13比特表示语言,一个0待定,用1比特表示是汉字还是假名,后边的17比特表示一个汉字,或一两个假名。
举例
slapping$
这个$
符号表示单词结束。
上述单词被分解成:
sla ppi ng$
用3个32位编码来表示。
得到一个32位编码,看它的前13位,确定是英语。
再读15比特,从中计算出是哪个字母组合。
再读2比特,确定有无首字母大写,有无结束符。
标点符号
所有标点符号放在一起,算做一种语言。包括英文符号、中文符号、数学符号等。