Package hex implements hexadecimal encoding and decoding.
ErrLength results from decoding an odd length slice.
var ErrLength = errors.New("encoding/hex: odd length hex string")
func Decode(dst, src []byte) (int, error)
Decode decodes src into DecodedLen(len(src)) bytes, returning the actual number of bytes written to dst.
Decode expects that src contain only hexadecimal characters and that src should have an even length.
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(s string) ([]byte, error)
DecodeString returns the bytes represented by the hexadecimal string 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(x int) int
DecodedLen returns the length of a decoding of x source bytes. Specifically, it returns x / 2.
func Dump(data []byte) string
Dump returns a string that contains a hex dump of the given data. The format of the hex dump matches the output of `hexdump -C` on the command line.
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(w io.Writer) io.WriteCloser
Dumper returns a WriteCloser that writes a hex dump of all written data to w. The format of the dump matches the output of `hexdump -C` on the command line.
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(dst, src []byte) int
Encode encodes src into EncodedLen(len(src)) bytes of dst. As a convenience, it returns the number of bytes written to dst, but this value is always EncodedLen(len(src)). Encode implements hexadecimal encoding.
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(src []byte) string
EncodeToString returns the hexadecimal encoding of src.
package main import ( "encoding/hex" "fmt" ) func main() { src := []byte("Hello") encodedStr := hex.EncodeToString(src) fmt.Printf("%s\n", encodedStr) }
func EncodedLen(n int) int
EncodedLen returns the length of an encoding of n source bytes. Specifically, it returns n * 2.
InvalidByteError values describe errors resulting from an invalid byte in a hex string.
type InvalidByteError byte
func (e InvalidByteError) Error() string
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://golang.org/pkg/encoding/hex/