是否可以在 Go 中将原始字符串文字转换为解释的字符串文字? (见 language specification )
我有一个原始字符串文字,但我想将解释后的字符串文字输出到控制台,即使用转义序列格式化的文本输出。
例如,打印这个原始字符串文字给出
s := `\033[1mString in bold.\033[0m`
println(s) // \033[1mString in bold.\033[0m
但我想要同样的结果s := "\033[1mString in bold.\033[0m"
println(s) // String in bold. (In bold)
对于上下文,我正在尝试打印使用转义序列格式化的文本文件的内容f, _ := := ioutil.ReadFile("file.txt")
println(string(f))
但输出是前一种方式。 最佳答案
使用 strconv.Unquote()
:
s := `\033[1mString in bold.\033[0m`
s2, err := strconv.Unquote(`"` + s + `"`)
if err != nil {
panic(err)
}
fmt.Println("normal", s2)
这将输出:请注意,传递给
string
的 strconv.Unquote()
值必须包含换行双引号或反引号,并且由于源 s
不包含换行引号,因此我对它们进行了前缀和后缀,如下所示:`"` + s + `"`
查看相关问题:How do I make raw unicode encoded content readable?
Golang convert integer to unicode character
How to transform Go string literal code to its value?
How to convert escape characters in HTML tags?
关于string - Go - 是否可以将原始字符串文字转换为解释的字符串文字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63971092/