Package hex implements hexadecimal encoding and decoding.
ErrLength reports an attempt to decode an odd-length input using Decode or DecodeString. The stream-based Decoder returns io.ErrUnexpectedEOF instead of ErrLength.
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 contains only hexadecimal characters and that src has even length. If the input is malformed, Decode returns the number of bytes decoded before the error.
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.
DecodeString expects that src contains only hexadecimal characters and that src has even length. If the input is malformed, DecodeString returns the bytes decoded before the error.
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.
func NewDecoder(r io.Reader) io.Reader
NewDecoder returns an io.Reader that decodes hexadecimal characters from r. NewDecoder expects that r contain only an even number of hexadecimal characters.
func NewEncoder(w io.Writer) io.Writer
NewEncoder returns an io.Writer that writes lowercase hexadecimal characters to w.
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/