在线文档教程

encoding/hex

Package hex

  • import "encoding/hex"

  • 概述

  • 索引

  • 示例

概述

包十六进制实现十六进制编码和解码。

索引

  • 变量

  • func Decode(dst, src []byte) (int, error)

  • func DecodeString(s string) ([]byte, error)

  • func DecodedLen(x int) int

  • func Dump(data []byte) string

  • func Dumper(w io.Writer) io.WriteCloser

  • func Encode(dst, src []byte) int

  • func EncodeToString(src []byte) string

  • func EncodedLen(n int) int

  • type InvalidByteError

  • func (e InvalidByteError) Error() string

示例

解码 DecodeString 转储转储器编码 EncodeToString

包文件

hex.go

变量

ErrLength 是解码奇数长度片的结果。

var ErrLength = errors.New("encoding/hex: odd length hex string")

func Decode(查看源代码)

func Decode(dst, src []byte) (int, error)

Decode 将 src 解码为 DecodedLen(len(src)) 字节,返回写入 dst 的实际字节数。

解码期望 src 只包含十六进制字符,并且 src 应该有一个均匀的长度。

示例

package main import ( "encoding/hex" "fmt" "log" ) func main() { src := []byte("48656c6c6f20476f7068657221") dst := make([]byte, hex.DecodedLen(len(src))) n, err := hex.Decode(dst, src) if err != nil { log.Fatal(err) } fmt.Printf("%s\n", dst[:n]) }

func DecodeString(查看源代码)

func DecodeString(s string) ([]byte, error)

DecodeString 返回由十六进制字符串 s 表示的字节。

示例

package main import ( "encoding/hex" "fmt" "log" ) func main() { const s = "48656c6c6f20476f7068657221" decoded, err := hex.DecodeString(s) if err != nil { log.Fatal(err) } fmt.Printf("%s\n", decoded) }

func DecodedLen(查看源代码)

func DecodedLen(x int) int

DecodedLen 返回x个源字节解码的长度。具体来说,它返回 x/2。

func Dump(查看源代码)

func Dump(data []byte) string

转储返回一个包含给定数据的十六进制转储的字符串。十六进制转储的格式与hexdump -C命令行上的输出相匹配。

示例

package main import ( "encoding/hex" "fmt" ) func main() { content := []byte("Go is an open source programming language.") fmt.Printf("%s", hex.Dump(content)) }

func Dumper(查看源代码)

func Dumper(w io.Writer) io.WriteCloser

Dumper 返回一个 WriteCloser,它将所有写入数据的十六进制转储写入 w。转储的格式与hexdump -C命令行上的输出相匹配。

示例

package main import ( "encoding/hex" "os" ) func main() { lines := []string{ "Go is an open source programming language.", "\n", "We encourage all Go users to subscribe to golang-announce.", } stdoutDumper := hex.Dumper(os.Stdout) defer stdoutDumper.Close() for _, line := range lines { stdoutDumper.Write([]byte(line)) } }

func Encode(查看源代码)

func Encode(dst, src []byte) int

将编码 src 编码为 dst 的 EncodedLen(len(src)) 字节。为了方便起见,它返回写入 dst 的字节数,但该值始终为 EncodedLen(len(src))。编码实现十六进制编码。

示例

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte("Hello Gopher!") dst := make([]byte, hex.EncodedLen(len(src))) hex.Encode(dst, src) fmt.Printf("%s\n", dst) }

func EncodeToString(查看源代码)

func EncodeToString(src []byte) string

EncodeToString 返回 src 的十六进制编码。

示例

package main import ( "encoding/hex" "fmt" ) func main() { src := []byte("Hello") encodedStr := hex.EncodeToString(src) fmt.Printf("%s\n", encodedStr) }

func EncodedLen(查看源代码)

func EncodedLen(n int) int

EncodedLen 返回n个源字节的编码长度。具体来说,它返回n * 2。

type InvalidByteError(查看源代码)

InvalidByteError 值描述由十六进制字符串中的无效字节导致的错误。

type InvalidByteError byte

func (InvalidByteError) Error(查看源代码)

func (e InvalidByteError) Error() string