Go言語で文字列をバイト列に変換するプログラム

一昔前のプログラミング言語なら簡単なことが、最近の言語は文字列がUTF-8になっているので、逆にいろいろとめんどくさい。

と思ったけど、実はそんなに難しくはなかった。

■string2byte.go

package main

import "fmt"

// バイト配列を十六進表記する
func disp_hex(data []byte) {
    for i:=0; i<len(data); i++ {
        fmt.Printf("%X ", data[i])
    }
    fmt.Println("")
}

func main() {
    hello_str := "Hello, world"
    hello_byte := []byte(hello_str)

    disp_hex(hello_byte)
}

■実行結果

$ go run string2byte.go
48 65 6C 6C 6F 2C 20 77 6F 72 6C 64

バイト列を文字列に変換するプログラム

ついでに、バイト列を文字列に変換するプログラムも書いてみた。
こちらの方は、fmt.Sprintf()関数を使ってC言語のノリで書けばOK。

■byte2string.go

package main

import "fmt"

func main() {
    s := "Hello,world."
    b := []byte(s)

    fmt.Println(b)
    fmt.Println(fmt.Sprintf("%s", b))
}

■実行結果

[72 101 108 108 111 44 119 111 114 108 100 46]
Hello,world.