Arrays 编码/十六进制:无效字节:U+;0068&x27;h';戈兰尼

Arrays 编码/十六进制:无效字节:U+;0068&x27;h';戈兰尼,arrays,string,go,hex,Arrays,String,Go,Hex,我正在尝试将字符串转换为包含其十六进制值的字节数组,下面是我编写的代码: package main import ( "encoding/hex" "fmt" "os" ) func main() { str :="abcdefhijklmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789" b, err := hex.DecodeString(str) if err != nil {

我正在尝试将
字符串
转换为包含其十六进制值的
字节
数组,下面是我编写的代码:

package main

import (
     "encoding/hex"
     "fmt"
     "os"
)

func main() {
     str :="abcdefhijklmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789"

     b, err := hex.DecodeString(str)

     if err != nil {
             fmt.Println(err)
             os.Exit(1)
     }

     fmt.Printf("Decoded bytes %v \n ", b)
}
以下是Go Playder的链接:


但是它给了我一个错误*编码/hex:invalid byte:U+0068'h'Golang*。这里有什么问题?我想将我的
字符串
转换为
字节
数组,该数组包含
字符串
中每个字符的十六进制值。我希望
b[n]
包含
str[n]
的十六进制值

您的代码正在尝试从十六进制解码。该字符串不是十六进制编码的

要编码为十六进制,请尝试以下操作

b := fmt.Sprintf("%x", str)

fmt.Printf("Decoded bytes %v", []byte(b))

您的代码正在尝试从十六进制解码。该字符串不是十六进制编码的

要编码为十六进制,请尝试以下操作

b := fmt.Sprintf("%x", str)

fmt.Printf("Decoded bytes %v", []byte(b))
我想将我的
字符串
转换为
字节
数组,该数组包含
字符串
中每个字符的十六进制值

您只需使用简单类型将
字符串
转换为
[]字节
(字节片,与数组不完全相同!):

你完了

如果要将其打印为十六进制
字符串
,则可以使用
字符串
[]字节
的函数:

fmt.Printf("%x", str)
// Or:
fmt.Printf("%x", b)
提示:您可以使用格式字符串
“%x”
在每个十六进制形式的字节/字符之间打印一个空格:

如果希望十六进制形式的结果作为
字符串
,可以使用变量:

或者,您也可以使用
编码/hex
软件包中的功能:

hexst := hex.EncodeToString(b)
我想将我的
字符串
转换为
字节
数组,该数组包含
字符串
中每个字符的十六进制值

您只需使用简单类型将
字符串
转换为
[]字节
(字节片,与数组不完全相同!):

你完了

如果要将其打印为十六进制
字符串
,则可以使用
字符串
[]字节
的函数:

fmt.Printf("%x", str)
// Or:
fmt.Printf("%x", b)
提示:您可以使用格式字符串
“%x”
在每个十六进制形式的字节/字符之间打印一个空格:

如果希望十六进制形式的结果作为
字符串
,可以使用变量:

或者,您也可以使用
编码/hex
软件包中的功能:

hexst := hex.EncodeToString(b)