Ikedaです。 Goのstringとruneについて曖昧な知識のまま使ってきたが、そろそろちゃんと理解しようと思って下記事を読みました。 Strings, bytes, runes and characters in Go - The Go Blog ざっくりと抜粋。 stringは実質read-onlyなbyteスライス。中身はUTF-8とは限らない GoのソースコードはUTF-8で書くルール ソースがちゃんとUTF-8で書かれていればリテラルで初期化されたstringはUTF-8になるはず len(string)はbyte数返す string[n]はインデックスnのbyte(int8) const sample = "日本語" for i := 0; i < len(sample); i++ { fmt.Printf("%x ", sample[i]) } ↓結果 e6 97 a5