©
This document uses PHP Chinese website manual Release
import "encoding/hex"
Overview
Index
Examples
包十六进制实现十六进制编码和解码。
Variables
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(dst, src []byte) (int, error)
Decode将src解码为DecodedLen(len(src))字节,返回写入dst的实际字节数。
解码期望src只包含十六进制字符,并且src应该有一个均匀的长度。
package mainimport ("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(s string) ([]byte, error)
DecodeString返回由十六进制字符串s表示的字节。
package mainimport ("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(x int) int
DecodedLen返回x个源字节解码的长度。具体来说,它返回x / 2。
func Dump(data []byte) string
转储返回一个包含给定数据的十六进制转储的字符串。十六进制转储的格式与hexdump -C
命令行上的输出相匹配。
package mainimport ("encoding/hex""fmt")func main() { content := []byte("Go is an open source programming language.") fmt.Printf("%s", hex.Dump(content))}
func Dumper(w io.Writer) io.WriteCloser
Dumper返回一个WriteCloser,它将所有写入数据的十六进制转储写入w。转储的格式与hexdump -C
命令行上的输出相匹配。
package mainimport ("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(dst, src []byte) int
将编码src编码为dst的EncodedLen(len(src))字节。为了方便起见,它返回写入dst的字节数,但该值始终为EncodedLen(len(src))。编码实现十六进制编码。
package mainimport ("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(src []byte) string
EncodeToString返回src的十六进制编码。
package mainimport ("encoding/hex""fmt")func main() { src := []byte("Hello") encodedStr := hex.EncodeToString(src) fmt.Printf("%s\n", encodedStr)}
func EncodedLen(n int) int
EncodedLen返回n个源字节的编码长度。具体来说,它返回n * 2。
InvalidByteError值描述由十六进制字符串中的无效字节导致的错误。
type InvalidByteError byte
func (e InvalidByteError) Error() string