Golangの termbox-goというライブラリを使ってゲームを作りたいと思い、このサイトを参考にして文章を出力する関数の処理を書いていたのですが、
Go
1func drawX(x, y int, str string, fgColor int, bgColor int) { 2 color := setColor(fgColor) 3 backgroundColor := setColor(bgColor) 4 runes := []rune(str) 5 6 for i := range runes { 7 termbox.SetCell(x+i, y, runes[i], color, backgroundColor) 8 } 9}
drawX(3, 3, "Hello", 0, 0) //=> Hello drawX(5, 5, "こんにちは", 0, 0)//=> こには drawX(8, 8, "abcあいう", 0, 0)//=> abcあう
このように日本語を正しく出力することができません。
runeに変換すれば日本語でも一文字ずつ読み込めると思ったのですがうまくいきませんでした。
日本語は一文字で1バイトではないのでそのあたりのことだと思うのですが、いろいろ試してもうまく動きません。
どのような処理をすればいいでしょうか。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/09 10:39