离奇逃脱角色问题

发布于 2024-08-30 10:02:17 字数 373 浏览 7 评论 0原文

我将以下 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想念有你 2024-09-06 10:02:17

如果您选择 " 作为字符串终止符,则序列 \" 正在“工作”。

如果您使用 @" 作为初始字符串终止符,则序列 \" 不会转义引号(但 "" 会转义)。

所以 \" 不是一个“通用”转义序列,而 \' 则不是。

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.

俯瞰星空 2024-09-06 10:02:17

您不需要转义单引号。但如果你这样做,你可以随时尝试@方法。

You shouldn't need to escape the single quote. but if you do, you can always try the @ approach.

梦途 2024-09-06 10:02:17
string commandString = "SELECT tblData.Content " +
                    "FROM tblData " +
                    "WHERE (tblData.ref = '%"+myCurrentREF+"%')";

这是正确的方法,但是 = 并不意味着像?,或者你的字符串总是以 % 开头?

string commandString = "SELECT tblData.Content " +
                    "FROM tblData " +
                    "WHERE (tblData.ref = '%"+myCurrentREF+"%')";

This is the correct way, but instead of = did not mean like?, or you string always start with %?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文