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
包文件
变量
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"
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)
}