离奇逃脱角色问题
我将以下 c# 代码嵌入到 ac# asp.net 页面的文字 <% %>
中,
string commandString = "SELECT tblData.Content " +
"FROM tblData " +
"WHERE (tblData.ref = N\'%"+myCurrentREF+"%\')";
这破坏了我的代码,因为它显然无法使用 \'
转义字符。为什么会这样呢?其他转义字符(例如 \"
)正在工作,那么为什么 \'
不起作用?
I have the following c# code embedded in a literal <% %>
of a c# asp.net page
string commandString = "SELECT tblData.Content " +
"FROM tblData " +
"WHERE (tblData.ref = N\'%"+myCurrentREF+"%\')";
This is breaking my code since it apparently cannot use the \'
escape character. Why is it so? other escape characters like \"
are working so why isn't \'
working?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您选择 " 作为字符串终止符,则序列 \" 正在“工作”。
如果您使用 @" 作为初始字符串终止符,则序列 \" 不会转义引号(但 "" 会转义)。
所以 \" 不是一个“通用”转义序列,而 \' 则不是。
The sequence \" is "working" if you choose " as string terminator.
If you'd use @" as initial string terminator, the sequence \" does not escape the quote (but "" does).
So \" is not a "universal" escape sequence, and \' is none.
您不需要转义单引号。但如果你这样做,你可以随时尝试@方法。
You shouldn't need to escape the single quote. but if you do, you can always try the @ approach.
这是正确的方法,但是 = 并不意味着像?,或者你的字符串总是以 % 开头?
This is the correct way, but instead of = did not mean like?, or you string always start with %?