我想为 sting 添加双引号。我知道通过使用 /" 我们可以添加双引号。我的字符串是
string scrip = "$(function () {$(\"[src='" + names[i, 0] + "']\"" + ").pinit();});";
当我在浏览器上执行此操作时,我得到的是“而不是”引号。我该如何克服这个问题?
如果您的浏览器显示的是“&”而不是“字符,则可能只有几个原因。该字符应该作为其本身或作为 的HTML 实体发送到浏览器"
。请注意半色在结束。如果浏览器看到这样的“代码”,它会显示一个引号。这是为了让 HTML 更容易编写,当它的属性需要包含特殊字符时,比较:
<div attribute="blahblahblah" />
如果您想在 blahs 中添加一个 ",它会终止属性的符号,并且 HTML 代码会中断。因此,添加单个 " 字符应该如下所示:
<div attribute="blah"e;blahblah" />
现在,如果您错过分号,浏览器将显示blah"blahblah
而不是blah"blahblah
.
我刚刚注意到您的代码实际上是在粘合 JavaScript 代码。在 JavaScript 中,分号是一个表达式分隔符,所以在发出的 HTML 中可能实际上有 a"
并且它只是不正确地出现在错误消息中......或者你可能忘记在 javascript 中打开/关闭一些引号,并且分号实际上被视为表达式终止符?
还要确保检查 JavaScript 代码为什么要进行 html-entity 转换。通常,不会重新解析块。您是否将该 JavaScript 代码设置为 HTML 元素属性?像 OnClick 或 OnSend?那现在就别做了。使用此代码创建一个 javascript 函数,然后从单击/发送中调用该函数。将 JS 中的长表达式编码为属性是不值得的!只是浪费时间和精力。
如果所有其他方法都失败并且 JavaScript 发出正确,则查找您网站上的任何文本更正或文本突出显示或文本格式模块。很可能其中一个人误读了 html 实体并删除了分号,或者相反 - 他们在不需要时添加了它们。ASP.Net 本身通常可以正确完成其工作,它可以在需要的任何地方正确翻译实体,所以我先看看其他库。
你可以使用这样的东西:
String str=@"hello,,?!"
这应该转义所有字符或
String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);
你还用字符串做什么?
似乎在那之后的某个地方,字符串被编码了。您可以使用 HttpUtility.HtmlDecode(str); 但首先你必须首先弄清楚你的字符串在哪里被编码。
请记住,如果您<%: %>
在 aspx 或@yourvar
Razor 中使用,它将自动编码。你必须用它@Html.Raw(yourvar)
来压制它。