登录
首页 >  Golang >  Go问答

以 Go 从 utf8 编码中输出 utf8 字符

来源:stackoverflow

时间:2024-03-27 08:30:37 368浏览 收藏

Go语言中,可以使用runes操作utf8编码。`fromStringTorune`函数可获取字符串中字符的编码,而`fromRuneToChar`函数则可根据编码获取字符。对于utf8编码,字符'a'的编码为97。以下代码演示了如何获取`amess`字符串中第一个字符'a'的utf8编码并输出字符'a': ```go package main import ( "fmt" ) func main() { var amess string = "abcdefghijklmnopqrstuvwxyz123456789" fmt.Println(amess[0]) fmt.Println(string(rune(amess[0]))) } ```

问题内容

问题: 我正在尝试检索 utf8 代码指定的值。

假设我们有这种情况:

//string with the alphabet and some numbers.
var amess string = "abcdefghijklmnopqrstuvwxyz123456789"

我想输出 utf8 代码所分配的值。

如果a在utf8表中是97。如果97是utf8编码,我调用什么函数来输出字符'a'?

fmt.Println(aMess[0]) // outputs 97 how do I convert 97 to what it is assigned too?

解决方案


使用 runes 进行此类操作,在其他语言中我们将其称为 char

如果我正确理解你的问题。为了获取 char 的代码,您可以使用如下函数:

func fromstringtorune(message string) {
    for _, r := range message {
        fmt.println(r)
    }
}

如果你想根据它的代码获取字符,你可以使用这样的函数:

func fromrunetochar(r int) {
    fmt.println(string(r))
}

这里是 Example 的用法。

对于您的示例,

package main

import (
    "fmt"
)

func main() {
    var amess string = "abcdefghijklmnopqrstuvwxyz123456789"
    fmt.println(amess[0])
    fmt.println(string(rune(amess[0])))
}

演示:https://play.golang.org/p/fbEPtQHe63e

输出:

97
a

参考文献:

proposal: spec: remove string(int) #3939

The Go Blog: Proposals for Go 1.15

#32479. Diagnose string(int) conversion in go vet.

到这里,我们也就讲完了《以 Go 从 utf8 编码中输出 utf8 字符》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>