Go参考手册
编码 | encoding
encoding/base32
- import "encoding/base32"
- 概述
- 索引
- 示例
概述
包 base32 按照 RFC 4648 的规定实现 base32 编码。
概述
- 常量
- 变量
- func NewDecoder(enc *Encoding, r io.Reader) io.Reader
- func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser
- type CorruptInputError
- func (e CorruptInputError) Error() string
- type Encoding
- func NewEncoding(encoder string) *Encoding
- func (enc *Encoding) Decode(dst, src []byte) (n int, err error)
- func (enc *Encoding) DecodeString(s string) ([]byte, error)
- func (enc *Encoding) DecodedLen(n int) int
- func (enc *Encoding) Encode(dst, src []byte)
- func (enc *Encoding) EncodeToString(src []byte) string
- func (enc *Encoding) EncodedLen(n int) int
- func (enc Encoding) WithPadding(padding rune) *Encoding
示例
Encoding.DecodeString Encoding.EncodeToString NewEncoder
包文件
base32.go
常量
const (
        StdPadding rune = '=' // 标准填充字符
        NoPadding  rune = -1  // 无填充
)变量
HexEncoding 是 RFC 4648 中定义的“扩展的十六进制字母”。它通常用于 DNS。
var HexEncoding = NewEncoding(encodeHex)StdEncoding 是 RFC 4648 中定义的标准 base32 编码。
var StdEncoding = NewEncoding(encodeStd)func NewDecoder(查看源代码)
func NewDecoder(enc *Encoding, r io.Reader) io.ReaderNewDecoder 构造一个新的 base32 流解码器。
func NewEncoder(查看源代码)
func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloserNewEncoder 返回一个新的 base32 流编码器。写入返回的作者的数据将使用 enc 进行编码,然后写入w。Base32 编码以5字节块运行;写完后,调用者必须关闭返回的编码器以刷新任何部分写入的块。
示例
package main
import (
	"encoding/base32"
	"os"
)
func main() {
	input := []byte("foo\x00bar")
	encoder := base32.NewEncoder(base32.StdEncoding, os.Stdout)
	encoder.Write(input)
	// 完成后必须关闭编码器以冲洗任何部分块。
	// 如果您注释掉以下行,则最后一个部分块“r”
	// 不会被编码。
	encoder.Close()
}type CorruptInputError(查看源代码)
type CorruptInputError int64func (CorruptInputError) Error(查看源代码)
func (e CorruptInputError) Error() stringtype Encoding(查看源代码)
编码是基数为 32 的 encoding/decoding 方案,由 32 个字母的字母表定义。最常见的是为 SASL GSSAPI 引入的“base32”编码,并在 RFC 4648 中进行了标准化。在 DNSSEC 中使用了备用“base32hex”编码。
type Encoding struct {
        // 包含已过滤或未导出的字段
}func NewEncoding(查看源代码)
func NewEncoding(encoder string) *EncodingNewEncoding 返回一个由给定字母表定义的新编码,它必须是一个 32 字节的字符串。
func (*Encoding) Decode(查看源代码)
func (enc *Encoding) Decode(dst, src []byte) (n int, err error)解码使用 enc 编码解码 src。它至多将 DecodedLen(len(src)) 字节写入 dst 并返回写入的字节数。如果 src 包含无效的 base32 数据,它将返回成功写入的字节数和 CorruptInputError。换行符(\r 和\n)被忽略。
func (*Encoding) DecodeString(查看源代码)
func (enc *Encoding) DecodeString(s string) ([]byte, error)DecodeString 返回由 base32 字符串s表示的字节。
示例
package main
import (
	"encoding/base32"
	"fmt"
)
func main() {
	str := "ONXW2ZJAMRQXIYJAO5UXI2BAAAQGC3TEEDX3XPY="
	data, err := base32.StdEncoding.DecodeString(str)
	if err != nil {
		fmt.Println("error:", err)
		return
	}
	fmt.Printf("%q\n", data)
}func (*Encoding) DecodedLen(查看源代码)
func (enc *Encoding) DecodedLen(n int) intDecodedLen 返回对应于 base32 编码数据的 n 个字节的解码数据的最大字节长度。
func (*Encoding) Encode(查看源代码)
func (enc *Encoding) Encode(dst, src []byte)使用编码 enc 对编码 src 进行编码,将EncodedLen(len(src)) 字节写入 dst。
编码将输出填充到 8 个字节的倍数,因此 Encode 不适用于大数据流的各个块。改用 NewEncoder()。
func (*Encoding) EncodeToString(查看源代码)
func (enc *Encoding) EncodeToString(src []byte) stringEncodeToString 返回 src 的 base32 编码。
示例
package main
import (
	"encoding/base32"
	"fmt"
)
func main() {
	data := []byte("any + old & data")
	str := base32.StdEncoding.EncodeToString(data)
	fmt.Println(str)
}func (*Encoding) EncodedLen(查看源代码)
func (enc *Encoding) EncodedLen(n int) intEncodedLen 返回长度为 n 的输入缓冲区的 base32 编码的字节长度。
func (Encoding) WithPadding(查看源代码)
func (enc Encoding) WithPadding(padding rune) *EncodingWithPadding 创建一个与 enc 相同的新编码,除了指定的填充字符或 NoPadding 禁用填充。填充字符不能是 '\r' 或 '\n',不能包含在编码的字母表中,并且必须是等于或低于 '\xff' 的符文。
编码 | encoding相关
 
                                Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
| 主页 | https://golang.org/ | 
| 源码 | https://go.googlesource.com/go | 
| 发布版本 | 1.9.2 | 
 
         加载中,请稍侯......
 加载中,请稍侯......