gpt4 book ai didi

string - 将 base64 行拆分为 block

转载 作者:IT王子 更新时间:2023-10-29 02:02:55 26 4
gpt4 key购买 nike

将一行 base64 拆分为 76 个字符的多行的最佳方法是什么。目前我使用 encoding/base64 包是这样的:

encoded := base64.StdEncoding.EncodeToString(data)

提前致谢!

最佳答案

标准库中不支持这个。你必须自己做一个。

一个简单的实现可以是这样的:

func split(s string, size int) []string {
ss := make([]string, 0, len(s)/size+1)
for len(s) > 0 {
if len(s) < size {
size = len(s)
}
ss, s = append(ss, s[:size]), s[size:]

}
return ss
}

这个循环直到字符串被消耗,并且在每次迭代中从头开始切割 size 个字符(字节)。

请注意,这适用于 base64 文本,因为它仅使用 1 对 1 映射到 UTF-8 编码形式字节的字符(Go 在内存中存储字符串的方式)。如果您想在任意字符串上使用它, slice 可能会破坏有效的 UTF-8 序列,而且 block 也不一定是 size 个字符。

测试它:

s := strings.Repeat("1", 2*76+3)
for _, chunk := range split(s, 76) {
fmt.Println(chunk)
}

输出(在 Go Playground 上尝试):

1111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111111111111111
111

关于string - 将 base64 行拆分为 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com