一昔前のプログラミング言語なら簡単なことが、最近の言語は文字列が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.