将字节数组的golang字符串格式转换回原始字节数组

将字节数组的golang字符串格式转换回原始字节数组,go,Go,所以我从一个字符串开始,将消息转换成字节数组并打印出来,现在我丢失了原始字符串,但得到了字节数组的字符串输出。我要回我的绳子。(不要问我为什么这么做或者怎么做……我真的没有,这只是为了举例说明) 基本上,我缺少的是一种将字节数组的打印表示形式转换回字节数组的方便方法 请参见下面的示例以更好地解释我正在尝试做的事情(完成“其他方式”功能): 嗯,这是一个有趣的练习,如果有点毫无意义的话: s := "WAT" // Output as bytes b := []byte(s) bs := fm

所以我从一个字符串开始,将消息转换成字节数组并打印出来,现在我丢失了原始字符串,但得到了字节数组的字符串输出。我要回我的绳子。(不要问我为什么这么做或者怎么做……我真的没有,这只是为了举例说明)

基本上,我缺少的是一种将字节数组的打印表示形式转换回字节数组的方便方法

请参见下面的示例以更好地解释我正在尝试做的事情(完成“其他方式”功能):


嗯,这是一个有趣的练习,如果有点毫无意义的话:

s := "WAT"

// Output as bytes
b := []byte(s)
bs := fmt.Sprintf("%v", b)

// Read bytes
var bb []byte
for _, ps := range strings.Split(strings.Trim(bs, "[]"), " ") {
    pi,_ := strconv.Atoi(ps)
    bb = append(bb,byte(pi))
}

// Print result
fmt.Printf("%s -> %s -> %s",s,bs,bb)


WAT->[87 65 84]->WAT

嗯,这是一个有趣的练习,如果有点毫无意义的话:

s := "WAT"

// Output as bytes
b := []byte(s)
bs := fmt.Sprintf("%v", b)

// Read bytes
var bb []byte
for _, ps := range strings.Split(strings.Trim(bs, "[]"), " ") {
    pi,_ := strconv.Atoi(ps)
    bb = append(bb,byte(pi))
}

// Print result
fmt.Printf("%s -> %s -> %s",s,bs,bb)


WAT->[87 65 84]->WAT

您只需执行
string(byteArray)
。字符串被定义为简单的
[]字节
,因此简单的转换就可以了。您的意思是:不是我的原始字符串-您没有将字符串转换为相应的字节片,而是转换为另一个字符串,恰好是打印字节片的默认go格式。你到底想做什么?如果你打印了一种调试的方法,只需打印它,但是不要用调试值重写原始值。如果打印原始字符串是一个问题,那么考虑用%Q格式说明符打印并恢复原始字符串。另一种方法是使用%x打印并使用恢复原始。您只需执行
string(byteArray)
。字符串被定义为简单的
[]字节
,因此简单的转换就可以了。您的意思是:不是我的原始字符串-您没有将字符串转换为相应的字节片,而是转换为另一个字符串,恰好是打印字节片的默认go格式。你到底想做什么?如果你打印了一种调试的方法,只需打印它,但是不要用调试值重写原始值。如果打印原始字符串是一个问题,那么考虑用%Q格式说明符打印并恢复原始字符串。另一种方法是使用%x打印,然后使用恢复原稿。