[]byte
to string引发错误。 string([]byte[:n])
也犯了一个错误。顺便说一下,例如,sha1值为filename的字符串。它是否需要utf-8或任何其他编码设置?谢谢!
我用来将byte
转换为string
的最简单方法是:
myString := string(myBytes[:])
在Go中,您通过执行string(bytes)
将字节数组(utf-8)转换为字符串,因此在您的示例中,假设string(byte[:n])
是一个字节切片,它应该是byte
。
我不确定我是否正确理解问题,但可能是:
var ab20 [20]byte = sha1.Sum([]byte("filename.txt"))
var sx16 string = fmt.Sprintf("%x", ab20)
fmt.Print(sx16)
首先,你得到所有这些否定评论,因为你没有提供任何代码。第二,没有一个很好的例子。这就是我要做的
var Buf bytes.Buffer
Buf.Write([]byte)
myString := Buf.String()
Buf.Reset() // Reset the buffer to reuse later
还是更好
myString := string(someByteArray[:n])
看到here也看到@ JimB的评论
如果您帮助定位您的程序,请说明您尝试过的内容,预期结果和错误。
我们可以猜测您的代码有什么问题,因为没有提供有意义的示例。但首先我看到string([]byte[:n])
根本无效。 []byte[:n]
不是有效的表达式,因为没有为数组分配内存。由于字节数组可以直接转换为字符串,我假设您只有语法错误。
最短的有效期是fmt.Println(string([]byte{'g', 'o'}))