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)