编码 utf 8 个字符的问题 - šđžčć

Problem with decoding utf8 characters - šđžčć

我有一个词包含其中的一些字符 - šđžčć。当我从那个词中取出第一个字母时,我将得到一个 byte,当我将 byte 转换为字符串时,我将得到错误解码的字符串。 有人可以帮我弄清楚如何正确解码提取器字母。 这是示例代码:

package main

import (
    "fmt"
)

func main() {
    word := "ŠKOLA"
    c := word[0]

    fmt.Println(word, string(c)) // ŠKOLA Å
}

https://play.golang.org/p/6T2FX4vN3-U

Š 多了一个字节。一种索引符文的方法是将字符串转换为 []rune

c := []rune(word)[0]

https://play.golang.org/p/NBUopxe-ik1

您还可以使用 utf8 包中提供的函数,例如 utf8.DecodeRune and utf8.DecodeRuneInString 来迭代 utf8 字符串中的各个代码点。

r, _ := utf8.DecodeRuneInString(word)
fmt.Println(word, string(r))