Skip to content

Base62 ​

Base62 是一种将二进制数据编码为 ASCII 字符的编码方式,使用 62 个字符(0-9, A-Z, a-z)来表示数据。dongle 支持标准和流式 Base62 编码。

默认字符集为 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz, 可以通过设置 base62.StdAlphabet 来自定义字符集

流式编解码会在内部缓存全部输入,在 Close 时一次性完成编码/解码,以保证结果与一次性处理完全一致;内存占用与输入数据量成正比。

编码数据 ​

输入数据

go
// 输入字符串
encoder := dongle.Encode.FromString("hello world").ByBase62()
// 输入字节切片
encoder := dongle.Encode.FromBytes([]byte("hello world")).ByBase62()
// 输入文件流
file, _ := os.Open("test.txt")
encoder := dongle.Encode.FromFile(file).ByBase62()

// 检查编码错误
if encoder.Error != nil {
	fmt.Printf("编码错误: %v\n", encoder.Error)
	return
}

输出数据

go
// 输出字符串
encoder.ToString() // AAwf93rvy4aWQVw
// 输出字节切片
encoder.ToBytes()  // []byte("AAwf93rvy4aWQVw")

解码数据 ​

输入数据

go
// 输入字符串
decoder := dongle.Decode.FromString("AAwf93rvy4aWQVw").ByBase62()
// 输入字节切片
decoder := dongle.Decode.FromBytes([]byte("AAwf93rvy4aWQVw")).ByBase62()
// 输入文件流
file, _ := os.Open("test.txt")
decoder := dongle.Decode.FromFile(file).ByBase62()

// 检查解码错误
if decoder.Error != nil {
	fmt.Printf("解码错误: %v\n", decoder.Error)
	return
}

输出数据

go
// 输出字符串
decoder.ToString() // hello world
// 输出字节切片
decoder.ToBytes()  // []byte("hello world")

基于 MIT 许可发布,未经许可禁止任何形式的转载