# package ascii85

`import "encoding/ascii85"`

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

## 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流的解码器。