首页 > 解决方案 > 解码 utf8 字符的问题 - šđžčć

问题描述

我有一个包含这些字符的词-šđžčć。当我从那个单词中取出第一个字母时,我会得到一个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

标签: goutf

解决方案


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

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

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

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

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

推荐阅读