string(strBytes)
не идентичен str
, поскольку содержит непечатаемые руны. Вы можете проверить, печатается ли руна с помощью unicode.IsPrint
метода . Здесь - это код, который показывает непечатаемые руны в strBytes
:
import (
"fmt"
"unicode"
"unicode/utf8"
)
func main() {
str := "test"
strBytes := make([]byte, 8)
copy(strBytes[:], str)
for len(strBytes) > 0 {
r, size := utf8.DecodeRune(strBytes)
fmt.Printf("Char: %q; Printable: %v\n", r, unicode.IsPrint(r))
strBytes = strBytes[size:]
}
}