请说。 为什么代码中的字符串“ \ 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”?
答案 0 :(得分:1)
确实有一个标准软件包和一个函数。 strconv.Unquote
Unquote将s解释为单引号,双引号或反引号Go字符串文字,并返回用s引起引用的字符串值。 (如果s是单引号,则它将是Go字符文字; Unquote返回相应的单字符字符串。)
请注意,您需要引用输入搅拌。在您的代码中,应为:
text2 := strconv.Unquote(`"`+os.Args[1]+`"`)