请说。为什么代码中的字符串“ \ xF0 \ x9F \ x98 \ x81”与参数命令行中的“ \ xF0 \ x9F \ x98 \ x81”不同?
func main() {
text1 := "\xF0\x9F\x98\x81"
text2 := os.Args[1]
}
如果len(text1),则长度字符串“ text1” = 4,“ text2” = 16。我如何将“ text2”转换为“ text1”?
确实有一个标准的程序包和功能。 strconv.Unquote
Unquote将s解释为单引号,双引号或反引号Go字符串文字,并返回s引用的字符串值。(如果s是单引号,则它将是Go字符文字; Unquote返回相应的单字符字符串。)
注意,您需要引用输入stirng。在您的代码中,应为:
text2 := strconv.Unquote(`"`+os.Args[1]+`"`)
游乐场示例:https : //play.golang.org/p/u2yU3VQHhXO
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句