Package base64

import "encoding/base64"
Overview
Index
Examples

Overview ▾

包base64实现RFC 4648指定的base64编码.

Example

SGVsbG8sIOS4lueVjA==
Hello, 世界

Constants

const (
    StdPadding rune = '=' // Standard padding character
    NoPadding  rune = -1  // No padding
)

Variables

RawStdEncoding是标准的原始,未填充的base64编码,如RFC 4648第3.2节中所定义. 这与StdEncoding相同,但是省略了填充字符.

var RawStdEncoding = StdEncoding.WithPadding(NoPadding)

RawURLEncoding是RFC 4648中定义的未填充的替代base64编码.通常在URL和文件名中使用. 这与URLEncoding相同,但是省略了填充字符.

var RawURLEncoding = URLEncoding.WithPadding(NoPadding)

StdEncoding是RFC 4648中定义的标准base64编码.

var StdEncoding = NewEncoding(encodeStd)

URLEncoding是RFC 4648中定义的备用base64编码.通常在URL和文件名中使用.

var URLEncoding = NewEncoding(encodeURL)

func NewDecoder

func NewDecoder(enc *Encoding, r io.Reader) io.Reader

NewDecoder构造一个新的base64流解码器.

func NewEncoder

func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser

NewEncoder返回一个新的base64流编码器. 写入返回的写入器的数据将使用enc进行编码,然后写入w. Base64编码以4字节块为单位; 完成写入后,调用者必须关闭返回的编码器以刷新任何部分写入的块.

Example

Zm9vAGJhcg==

type CorruptInputError

type CorruptInputError int64

func (CorruptInputError) Error

func (e CorruptInputError) Error() string

type Encoding

编码是由64个字符的字母定义的基数64编码/解码方案. 最常见的编码是RFC 4648中定义的MIME(RFC 2045)和PEM(RFC 1421)中使用的" base64"编码. RFC 4648还定义了备用编码,这是用-和_代替+和/的标准编码.

type Encoding struct {
    // contains filtered or unexported fields
}

func NewEncoding

func NewEncoding(encoder string) *Encoding

NewEncoding返回由给定字母定义的新的填充编码,该编码必须是不包含填充字符或CR / LF('\ r','\ n')的64字节字符串. 生成的编码使用默认的填充字符('='),可通过WithPadding更改或禁用该默认填充字符.

func (*Encoding) Decode

func (enc *Encoding) Decode(dst, src []byte) (n int, err error)

解码使用编码enc解码src. 它最多将DecodedLen(len(src))字节写入dst,并返回写入的字节数. 如果src包含无效的base64数据,它将返回成功写入的字节数和CorruptInputError. 换行符(\ r和\ n)将被忽略.

func (*Encoding) DecodeString

func (enc *Encoding) DecodeString(s string) ([]byte, error)

DecodeString返回由base64字符串s表示的字节.

Example

"some data with \x00 and \ufeff"

func (*Encoding) DecodedLen

func (enc *Encoding) DecodedLen(n int) int

DecodedLen返回与n字节的base64编码数据相对应的解码数据的最大长度(以字节为单位).

func (*Encoding) Encode

func (enc *Encoding) Encode(dst, src []byte)

Encode使用编码enc对src进行编码,将EncodedLen(len(src))字节写入dst.

编码会将输出填充为4字节的倍数,因此Encode不适合用于大型数据流的各个块. 请改用NewEncoder().

func (*Encoding) EncodeToString

func (enc *Encoding) EncodeToString(src []byte) string

EncodeToString返回src的base64编码.

Example

YW55ICsgb2xkICYgZGF0YQ==

func (*Encoding) EncodedLen

func (enc *Encoding) EncodedLen(n int) int

EncodedLen返回长度为n的输入缓冲区的base64编码的长度(以字节为单位).

func (Encoding) Strict 1.8

func (enc Encoding) Strict() *Encoding

除启用严格解码外,严格创建与enc相同的新编码. 在这种模式下,解码器要求尾随填充位为零,如RFC 4648第3.5节所述.

func (Encoding) WithPadding 1.5

func (enc Encoding) WithPadding(padding rune) *Encoding

WithPadding创建一个与enc相同的新编码,但带有指定的填充字符,或者使用NoPadding禁用填充. 填充字符不能为" \ r"或" \ n",也不能包含在编码字母中,并且其符文必须等于或小于" \ xff".

by  ICOPY.SITE