Skip to content

cryptography-research-lab/go-chinese-commercial-code

Repository files navigation

中文电码

一、中文电码是什么?应用场景?

中文电码,又称:中文商用电码(Chinese commercial code, CCC)、中文电报码(Chinese telegraph code, CTC)或中文电报明码(Chinese ordinary telegraph code, COTC),原本是用于电报之中传送中文信息的方法。它是第一个将汉字化作电子信号的编码表。

自摩尔斯电码在1835年发明后,一直只能用来传送英语或以拉丁字母拼写的文字。在1880年,清朝政府雇用丹麦人(也有说是法国人)设计了中文汉字电报。

中文电码表采用了四位阿拉伯数字作代号,简称“四码电报”,从0001到9999按四位数顺序排列,用四位数字表示最多一万个汉字、字母和符号。汉字先按部首,后按笔划排列。字母和符号放到电码表的最尾。后来由于一万个汉字不足以应付户籍管理的要求,又有第二字面汉字的出现。在香港,两个字面都采用同一编码,由输入员人手选择字面;在台湾,第二字面的汉字会在开首补上“1”字,变成5个数字的编码。

中国汉字多达6万字,常用的汉字只有一万个左右, 所以用10的4次方(10,000)来表示。中文电码表采用了四位阿拉伯数字作代号,简称“四码电报”,从0001到9999按四位数顺序排列,用四位数字表示最多一万个汉字、字母和符号。汉字先按部首,后按笔划排列。字母和符号放到电码表的最尾。后来由于一万个汉字不足以应付户籍管理的要求,又有第二字面汉字的出现。在香港,两个字面都采用同一编码,由输入员人手选择字面;在台湾,第二字面的汉字会在开首补上“1”字,变成5个数字的编码。

中文电码应用

中文电码可用作电脑里的中文输入法,但因中文电码是“无理码”,记忆困难,一般用户几乎无法熟练地掌握使用。

在香港,每个有中文姓名的市民的身份证上,均会在他的姓名下面印有中文电码,外国人取得的入港签证亦有印上。在很多政府或商业机构的表格中,都会要求填写者填写他的中文电码,以便输入电脑。

办理签证时,有些国家(美国、英国、澳大利亚等)需要填写中文电码。比如:申请美国签证的DS156表,在姓名一项,要求填写“Chinese Commercial Code Number”,即为姓名的中文电码。

二、安装依赖

go get -u github.com/cryptography-research-lab/go-chinese-commercial-code

三、API示例

package main

import (
	"fmt"
	chinese_commercial_code "github.com/cryptography-research-lab/go-chinese-commercial-code"
)

func main() {

	// 对中文进行电报码编码
	commercialCodeSlice := chinese_commercial_code.ToCommercialCodeSliceFromChineseString("加密算法很有趣")
	fmt.Println(commercialCodeSlice) // Output: [502 1378 4615 3127 1771 2589 6393]

	// 将电报码编码转换为中文
	chineseString := chinese_commercial_code.ToChineseStringFromCommercialCodeSlice(commercialCodeSlice)
	fmt.Println(chineseString) // Output: 加密算法很有趣

}

四、参考资料

About

标准中文电码(Chinese Commercial Code)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published