首页 > 如何将golang[]byte转换为字符串

如何将golang[]byte转换为字符串

程序中使用到一段代码

data:=[4]byte{1,2,3,4}

想转成字符串显示,试了使用

str:=string(data)
fmt.Print(str)

但是输出为空白,不知道应该怎样转换?


ASCII编码不是都可见的。

package main

import (
    "fmt"
)

func main() {
    data := [4]byte{0x31, 0x32, 0x33, 0x34}
    str := string(data[:])
    fmt.Println(str)
}

这样做是不高效的,但是可以简写如下:

func convert( b []byte ) string {
    s := make([]string,len(b))
    for i := range b {
        s[i] = strconv.Itoa(int(b[i]))
    }
    return strings.Join(s,",")
}

调用

bytes := [4]byte{1,2,3,4}
str := convert(bytes[:])

很简单,1,2,3,4映射到ascii码中都不是可见字符。

不信?

你打印65,66,67,68看看是不是大写的ABCD。

另附ASCII码表
http://baike.baidu.com/link?u...


会是空白吗?我以为会输出1,2,3,4对应的ascii码,特殊的字符

【热门文章】
【热门文章】