我不知道如何从字符串中获取Unicode字符。例如,如果字符串是“你好”,我如何获得第一个字符“你”?
从另一个地方我得到一种方法:
var str = "你好"
runes := []rune(str)
fmt.Println(string(runes[0]))
确实有效。但是我仍然有一些问题:
还有另一种方法吗?
为什么在Go中str[0]
不能从字符串中获取Unicode字符,却可以获取字节数据?
首先,您可能需要阅读https://blog.golang.org/strings
。它将回答您的部分问题。
Go中的字符串可以包含任意字节。当您写str [i]时,结果是一个字节,索引始终是一个字节数。
大多数情况下,字符串都是用UTF-8编码的。您可以通过多种方式处理字符串中的UTF-8编码。
例如,您可以使用for … range语句来对符文对字符串符文进行迭代。
var first rune
for _,c := range str {
first = c
break
}
// first now contains the first rune of the string
您还可以利用unicode / utf8软件包。例如:
r, size := utf8.DecodeRuneInString(str)
// r contains the first rune of the string
// size is the size of the rune in bytes
如果字符串以UTF-8编码,则无法直接访问字符串的第n个符文,因为符文的大小(以字节为单位)不是恒定的。如果需要此功能,则可以轻松编写自己的帮助程序功能(使用for
… range或unicode / utf8软件包)。
问题内容: 如何使用php从字符串中获取前5个字符 结果应该是这样的 问题答案: 对于单字节字符串(例如US-ASCII,ISO8859系列等),请使用;对于多字节字符串(例如UTF-8,UTF-16等),请使用:
问题内容: Java中的String数据类型使我们可以通过codePointCount知道一个字符串中有多少个Unicode字符。以及如何通过codePointAt获取第n个unicode char。我很想知道是否有一个API来获取包含Java中前N个unicode字符的子字符串。 谢谢, 问题答案: 没有一个方法可以一次调用,但可以帮助您完成此操作。
我有两根绳子 在两种情况下,我应该删除
为了在Java中访问字符串的各个字符,我们有。java中是否有任何内置函数来删除字符串的单个字符? 像这样的东西:
问题内容: 让我们假设我们要还原以下字符串“áe”。 该代码为“ \ u0061 \ u0301 \ u0065”。 恢复它的幼稚方法是逐个字符 当我们希望获得“eá”(\ u0065 \ u0061 \ u0301)时,它会给我们“éa”(\ u0065 \ u0301 \ u0061)。重音“´”应与“ a”粘贴在一起,而不要更改为“ e”。 以下代码为我提供了该字符串的预期结果: 我正在检查
问题内容: 我正在使用 Python 2 从 ASCII编码的 文本文件中解析JSON 。 当使用或 加载这些文件时,我所有的字符串值都转换为Unicode对象而不是字符串对象。问题是,我必须将数据与仅接受字符串对象的某些库一起使用。我 无法更改库, 也 无法 更新它们。 是否可以获取字符串对象而不是Unicode对象? 更新资料 很久以前 ,当我坚持使用 Python 2 时就问 了 这个问题。