在golang中逃避撇号

tus*_*shR 3 go

我如何在golang中逃避撇号?我有一个字符串

s = "I've this book"
Run Code Online (Sandbox Code Playgroud)

而且我想成功

s = "I\'ve this book"
Run Code Online (Sandbox Code Playgroud)

怎么做到这一点?提前致谢.

nem*_*emo 7

只有在可以以两种或更多种方式解释字符时,才需要转义字符.你的字符串中的撇号只能被解释为撇号,因此不需要转义.这可能是您看到错误消息的原因unknown escape sequence: '.

如果由于将其插入数据库而需要转义撇号,请首先考虑使用库函数直接转义或插入数据.在过去几十年中,正确的逃避一直是许多安全问题的罪魁祸首.你几乎肯定会做错了.

话虽如此,你必须逃避\做你想做的事(点击播放):

fmt.Println("\\'") # outputs \'
Run Code Online (Sandbox Code Playgroud)

当你使用cassandra时,你可以使用像gocql这样的包为你提供参数化查询:

session.Query(`INSERT INTO sometable (text) VALUES (?)`, "'escaping'").Exec();
Run Code Online (Sandbox Code Playgroud)

  • @tushR使用参数化查询和像gocql这样的库.你的代码不安全. (3认同)