如何将 []uint8 转换为字符串

dad*_*ade 4 go

我正在观察 Go 中程序的日志,在输出中我看到了以下内容:

[]uint8=[18 32 96 38 15 212 226 233 58 14 183 212 80 4 175 97 28 235 76 154 244 210 200 18 131 241 31 86 179 109 228 190 78 72])
Run Code Online (Sandbox Code Playgroud)

现在我希望能够将其转换为一种形式,让我可以看到它的含义。这应该是表示为 的字符串内容[]uint8

但是,当我按照此链接中的建议调用string值的方法时,我得到了乱码输出。

去游乐场链接在这里

我可能做错了什么以及如何进行此转换?

Eli*_*sky 5

转换s := string(stuff)很好,但通常您希望stuff包含实际的可打印字符序列。就你而言,它(大部分)不是。

确保详细阅读Go 中的字符串、字节、符文和字符。


修改示例以打印具有 ASCII 字母映射的字节值:

package main

import (
    "fmt"
)

func main() {
    stuff := []byte{97, 98, 99, 100}
    s := string(stuff)
    fmt.Println(s)
}
Run Code Online (Sandbox Code Playgroud)

打印“abcd”