编码 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 Å
}
Š
多了一个字节。一种索引符文的方法是将字符串转换为 []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))
我有一个词包含其中的一些字符 - šđžčć。当我从那个词中取出第一个字母时,我将得到一个 byte
,当我将 byte
转换为字符串时,我将得到错误解码的字符串。
有人可以帮我弄清楚如何正确解码提取器字母。
这是示例代码:
package main
import (
"fmt"
)
func main() {
word := "ŠKOLA"
c := word[0]
fmt.Println(word, string(c)) // ŠKOLA Å
}
Š
多了一个字节。一种索引符文的方法是将字符串转换为 []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))