gpt4 book ai didi

go - 变音符号和 slice

转载 作者:IT老高 更新时间:2023-10-28 13:09:04 26 4
gpt4 key购买 nike

我在读取具有固定列长度格式的文件时遇到了一些问题。某些列可能包含变音符号。

元音变音似乎使用 2 个字节而不是 1 个字节。这不是我所期望的行为。有没有返回子字符串的函数?在这种情况下, slice 似乎不起作用。

这里有一些示例代码:

http://play.golang.org/p/ZJ1axy7UXe

umlautsString := "Rhön"
fmt.Println(len(umlautsString))
fmt.Println(umlautsString[0:4])

打印:

5
Rhö

最佳答案

在 go 中,字符串的 slice 计算字节数,而不是 runes .这就是为什么 "Rhön"[0:3] 给你 Rhö 的第一个字节。

以 UTF-8 编码的字符表示为 rune ,因为 UTF-8 将字符编码为多个byte(最多四个字节)以提供更大范围的字符。

如果要使用 [] 语法对字符串进行 slice ,请先将字符串转换为 []rune。示例(on play):

umlautsString := "Rhön"
runes = []rune(umlautsString)
fmt.Println(string(runes[0:3])) // Rhö

值得注意的:This golang blog post about string representation in go .

关于go - 变音符号和 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19432380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com