hex
packagestandard libraryThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package hex implements hexadecimal encoding and decoding.
Index¶
- Variables
- func AppendDecode(dst, src []byte) ([]byte, error)
- func AppendEncode(dst, src []byte) []byte
- 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
- func NewDecoder(r io.Reader) io.Reader
- func NewEncoder(w io.Writer) io.Writer
- type InvalidByteError
Examples¶
Constants¶
This section is empty.
Variables¶
var ErrLength =errors.New("encoding/hex: odd length hex string")
ErrLength reports an attempt to decode an odd-length inputusingDecode orDecodeString.The stream-based Decoder returnsio.ErrUnexpectedEOF instead of ErrLength.
Functions¶
funcAppendDecode¶added ingo1.22.0
AppendDecode appends the hexadecimally decoded src to dstand returns the extended buffer.If the input is malformed, it returns the partially decoded src and an error.
funcAppendEncode¶added ingo1.22.0
AppendEncode appends the hexadecimally encoded src to dstand returns the extended buffer.
funcDecode¶
Decode decodes src intoDecodedLen(len(src)) bytes,returning the actual number of bytes written to dst.
Decode expects that src contains only hexadecimalcharacters and that src has even length.If the input is malformed, Decode returns the numberof bytes decoded before the error.
Example¶
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])}
Output:Hello Gopher!
funcDecodeString¶
DecodeString returns the bytes represented by the hexadecimal string s.
DecodeString expects that src contains only hexadecimalcharacters and that src has even length.If the input is malformed, DecodeString returnsthe bytes decoded before the error.
Example¶
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)}
Output:Hello Gopher!
funcDecodedLen¶
DecodedLen returns the length of a decoding of x source bytes.Specifically, it returns x / 2.
funcDump¶
Dump returns a string that contains a hex dump of the given data. The formatof the hex dump matches the output of `hexdump -C` on the command line.
Example¶
package mainimport ("encoding/hex""fmt")func main() {content := []byte("Go is an open source programming language.")fmt.Printf("%s", hex.Dump(content))}
Output:00000000 47 6f 20 69 73 20 61 6e 20 6f 70 65 6e 20 73 6f |Go is an open so|00000010 75 72 63 65 20 70 72 6f 67 72 61 6d 6d 69 6e 67 |urce programming|00000020 20 6c 61 6e 67 75 61 67 65 2e | language.|
funcDumper¶
func Dumper(wio.Writer)io.WriteCloser
Dumper returns aio.WriteCloser that writes a hex dump of all written data tow. The format of the dump matches the output of `hexdump -C` on the commandline.
Example¶
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))}}
Output:00000000 47 6f 20 69 73 20 61 6e 20 6f 70 65 6e 20 73 6f |Go is an open so|00000010 75 72 63 65 20 70 72 6f 67 72 61 6d 6d 69 6e 67 |urce programming|00000020 20 6c 61 6e 67 75 61 67 65 2e 0a 57 65 20 65 6e | language..We en|00000030 63 6f 75 72 61 67 65 20 61 6c 6c 20 47 6f 20 75 |courage all Go u|00000040 73 65 72 73 20 74 6f 20 73 75 62 73 63 72 69 62 |sers to subscrib|00000050 65 20 74 6f 20 67 6f 6c 61 6e 67 2d 61 6e 6e 6f |e to golang-anno|00000060 75 6e 63 65 2e |unce.|
funcEncode¶
Encode encodes src intoEncodedLen(len(src))bytes of dst. As a convenience, it returns the numberof bytes written to dst, but this value is alwaysEncodedLen(len(src)).Encode implements hexadecimal encoding.
Example¶
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)}
Output:48656c6c6f20476f7068657221
funcEncodeToString¶
EncodeToString returns the hexadecimal encoding of src.
Example¶
package mainimport ("encoding/hex""fmt")func main() {src := []byte("Hello")encodedStr := hex.EncodeToString(src)fmt.Printf("%s\n", encodedStr)}
Output:48656c6c6f
funcEncodedLen¶
EncodedLen returns the length of an encoding of n source bytes.Specifically, it returns n * 2.
funcNewDecoder¶added ingo1.10
NewDecoder returns anio.Reader that decodes hexadecimal characters from r.NewDecoder expects that r contain only an even number of hexadecimal characters.
Types¶
typeInvalidByteError¶
type InvalidByteErrorbyte
InvalidByteError values describe errors resulting from an invalid byte in a hex string.
func (InvalidByteError)Error¶
func (eInvalidByteError) Error()string