无法正确读取包含转义符的选项字符串
短信预约 -IT技能 免费直播动态提醒
来到编程网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《无法正确读取包含转义符的选项字符串》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!
问题内容下面的测试程序使用具有像 \u00fc 这样的代码点的 default 字符串按需要工作, 以及该类型的代码点是否被编码为 prog 中的字符串。从 cmd 行传递相同的字符串,如: prog.exe -input="abc\u00fc" 则不会。我认为这是操作系统交互所以 尝试了其他引用,甚至像这样换行:“(abc\u00fc)”并修剪 func ng 内的括号。
“for _, runeread := range []rune”对于转义值是否不正确?
package main
import (
"fmt"
"flag"
"os"
)
var input string
var m = make(map[rune]struct{})
func init() {
flag.StringVar(&input, "input", "A7\u00FC", "string of runes")
m['A'] = struct{}{}
m['\u00FC'] = struct{}{}
m['7'] = struct{}{}
}
func main() {
flag.Parse()
ck(input) // cmd line - with default OK
ck("A\u00FC") // hard code - OK
}
func ck(in string) {
for _, runeRead := range []rune(in) {
fmt.Printf("DEBUG: Testing rune: %v %v\n", string(runeRead), byte(runeRead))
if _, ok := m[runeRead]; ! ok {
fmt.Printf("\nERROR: Invalid entry <%v>, in string <%s>.\n", string(runeRead), in)
os.Exit(9)
}
}
}
解决方案需要在 windows 和 linux 上运行。
解决方案
https://ss64.com/nt/syntax-esc.html
所以你应该这样做
prog.exe -input="ABC^\u00FC"
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341