package ascii85

import “encoding/ascii85”

ascii85包实现了ascii85数据编码(5个ascii字符表示4个字节),该编码用于btoa工具和Adobe的PostScript语言和PDF文档格式。

Index 返回首页

type CorruptInputError func (e CorruptInputError) Error() string func MaxEncodedLen(n int) int func Encode(dst, src []byte) int func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err error) func NewEncoder(w io.Writer) io.WriteCloser func NewDecoder(r io.Reader) io.Reader type CorruptInputError type CorruptInputError int64 func (CorruptInputError) Error

func (e CorruptInputError) Error() string func MaxEncodedLen func MaxEncodedLen(n int) int 返回n字节源数据编码后的最大字节数。

func Encode func Encode(dst, src []byte) int 将src编码成最多MaxEncodedLen(len(src))数据写入dst,返回实际写入的字节数。编码每4字节一段进行一次,最后一个片段采用特殊的处理方式,因此不应将本函数用于处理大数据流的某一独立数据块。

一般来说ascii85编码数据会被’<~’和’~>’包括起来,函数并未添加上它们。

func Decode func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err error) 将src解码后写入dst,返回写入dst的字节数、从src解码的字节数。如果src含有非法数据,函数将返回成功执行的数据(两个数字)和CorruptInputError。如果flush为真,则函数会认为src代表输入流的结尾,完全处理src,而不会等待另一个32字节的数据块。

函数会忽略src中的空格和控制字符,一般来说ascii85编码数据会被’<~’和’~>’包括起来,但是调用者应自行去掉它们。

func NewEncoder func NewEncoder(w io.Writer) io.WriteCloser 创建一个将数据编码为ascii85流写入w的编码器。Ascii85编码算法操作32位块,写入结束后,必须调用Close方法将缓存中保留的不完整块刷新到w里。

func NewDecoder func NewDecoder(r io.Reader) io.Reader 创建一个从r解码ascii85流的解码器。