Golang 文字列の文字インデックス作成: UTF-8 デコード
Golang の文字列リテラルは UTF-8 でエンコードされた文字シーケンスですが、個々の文字のインデックスを作成します配列のような構文 string[index] を使用して位置を指定すると、予期しない結果が生じる可能性があります。これは、UTF-8 文字が複数のバイトを占める可能性があり、バイト位置によるインデックス作成により UTF-8 エンコーディングが壊れる可能性があるためです。
個々の文字を正確にインデックスして取得するために、Golang にはいくつかのオプションが用意されています。
Unicode コードポイントの使用(Runes)
例:
package main import "fmt" func main() { fmt.Println(string([]rune("HELLO, 世界")[1])) // "E" fmt.Println(string([]rune("HELLO, 世界")[8])) // "界" }
バイトの変換先文字
例:
package main import "fmt" func main() { fmt.Println(string("HELLO"[1])) // "e" }
以上がGo の UTF-8 文字列の文字に正しくインデックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。