在不同长度的字符串上将字符串编码为其 ASCII 表示

互联网 行业动态 更新时间:2024-06-13 00:19:53

icz*_*cza 5

ascii85.MaxEncodedLen()返回给定输入字节数的最大输出字节数。您可以使用这个上限估计。

返回实际使用/写入的字节数ascii85.Encode()。如果您将更大的切片传递给Encode(),则必须使用它来切片目标切片,超出此范围的字节是“垃圾”。

同样适用ascii85.Decode():它返回写入的字节数,如果您传递了更大的切片,则必须使用它来切片目标。

此外,由于解码可能失败(无效输入),您还应该检查返回的错误。

此外,由于不能保证给定的输入将导致输出是使用的 32 位块的倍数,因此传递flush=true以使用给定的输入切片(而不是等待更多输入)。

最终的更正代码:

s := []byte("Hello, playground")

maxlen := ascii85.MaxEncodedLen(len(s))

dst := make([]byte, maxlen)
n := ascii85.Encode(dst, s)
dst = dst[:n]
fmt.Println(string(dst))

dst2 := make([]byte, maxlen)
n, _, err := ascii85.Decode(dst2, dst, true)
if err != nil {
    panic(err)
}
dst2 = dst2[:n]
fmt.Println(string(dst2))

哪些输出(在Go Playground上尝试):

87cURD_*#MCghU%Ec6)<A,
Hello, playground

更多推荐

字符串,为其,上将,长度,ASCII

本文发布于:2023-04-21 21:11:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/234c1dec27c1fcec4651c7dc8acf5a36.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   为其   上将   长度   ASCII

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!