gpt4 book ai didi

go - unicode 按字面输出而不是 unicode

转载 作者:数据小太阳 更新时间:2023-10-29 03:27:54 26 4
gpt4 key购买 nike

我正在使用 Go 创建一个 IRC 机器人作为第一个项目来掌握这门语言。机器人功能之一是从 TVmaze API 中获取数据并显示在 channel 中。

我导入了一个 env 包,它允许机器人管理员定义输出的显示方式。

例如 SHOWSTRING="#showname# - #status# – #network.name#"

我正在尝试为其添加功能,以便管理员可以使用 IRC 格式化功能,该功能通过 \u0002 访问,例如,这是粗体\u0002

我有一个函数可以生成要返回并显示在 channel 中的字符串。

func generateString(show Show) string {
str := os.Getenv("SHOWSTRING")
r := strings.NewReplacer(
"#ID#", string(show.ID),
"#showname#", show.Name,
"#status#", show.Status,
"#network.name#", show.Network.Name,
)
result := r.Replace(str)
return result
}

根据我的阅读,我认为我需要使用 rune 数据类型而不是字符串,然后在输出之前将 rune 转换为字符串。

我正在使用 https://github.com/thoj/go-irceven与 IRC 交互的包。

虽然我认为使用 rune 是正确的方法,但我尝试了一些让我感到困惑的事情。

如果我将 \u0002 添加到环境中的 SHOWSTRING,它会返回 \u0002House\u0002 - Ended - Fox。我正在通过 con.Privmsg(roomName, tvmaze.ShowLookup('house'))

执行此操作

但是,如果我尝试 con.Privmsg(roomName, "\u0002This should be bold\u0002") 它会输出粗体文本。

这里最好的选择是什么?如果它要将字符串转换为 rune ,然后再转换回字符串,我该怎么做?

最佳答案

我需要在函数返回时使用 strconv.Unquote()

新的 generateString 函数现在输出正确的字符串,看起来像这样

func generateString(show Show) string {
str := os.Getenv("SHOWSTRING")
r := strings.NewReplacer(
"#ID#", string(show.ID),
"#showname#", show.Name,
"#status#", show.Status,
"#network.name#", show.Network.Name,
)
result := r.Replace(str)
ret, err := strconv.Unquote(`"` + result + `"`)
if err != nil {
fmt.Println("Error unquoting the string")
}
return ret
}

关于go - unicode 按字面输出而不是 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34521095/

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