go - 解码 utf8 字符的问题 - šđžčć
问题描述
我有一个包含这些字符的词-šđžčć。当我从那个单词中取出第一个字母时,我会得到一个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
和utf8.DecodeRuneInString
迭代 utf8 字符串中的各个代码点。
r, _ := utf8.DecodeRuneInString(word)
fmt.Println(word, string(r))
推荐阅读
- sql - 从存储过程获取记录时出错
- docker - 如何使用 Docker 为开发和生产设置单独的 .env
- c# - 如何以编程方式获取 TabControl 的子项
- web-scraping - 我什么时候必须设置标题以及如何获取它们?
- java - 如何使用多个复选框和提交按钮来检索 Firebase 实时数据库数据
- swift - 如何在嵌套的 Firebase 异步 observeSingleEvent() 方法 Swift 中使用 DispatchGroup?
- java - 在服务实现中放置@Cacheable 注解的理想位置是什么?
- python - Keras 模型通过编译但在运行时因值错误而崩溃
- php - $a = (true === !!array_intersect(['1'],[3,2,1])); 之间有什么区别?并检查 in_array
- python - 如何映射值并将许多值分配给“其他”类别?