0

我想为 sting 添加双引号。我知道通过使用 /" 我们可以添加双引号。我的字符串是

string scrip = "$(function () {$(\"[src='" + names[i, 0] + "']\"" + ").pinit();});";

当我在浏览器上执行此操作时,我得到的是“而不是”引号。我该如何克服这个问题?

4

3 回答 3

1

如果您的浏览器显示的是“&”而不是“字符,则可能只有几个原因。该字符应该作为其本身或作为 的HTML 实体发送到浏览器"。请注意半色在结束。如果浏览器看到这样的“代码”,它会显示一个引号。这是为了让 HTML 更容易编写,当它的属性需要包含特殊字符时,比较:

<div attribute="blahblahblah" />

如果您想在 blahs 中添加一个 ",它会终止属性的符号,并且 HTML 代码会中断。因此,添加单个 " 字符应该如下所示:

<div attribute="blah&quote;blahblah" />

现在,如果您错过分号,浏览器将显示blah&quotblahblah而不是blah"blahblah.

我刚刚注意到您的代码实际上是在粘合 JavaScript 代码。在 JavaScript 中,分号是一个表达式分隔符,所以在发出的 HTML 中可能实际上有 a&quot;并且它只是不正确地出现在错误消息中......或者你可能忘记在 javascript 中打开/关闭一些引号,并且分号实际上被视为表达式终止符?

还要确保检查 JavaScript 代码为什么要进行 html-entity 转换。通常,不会重新解析块。您是否将该 JavaScript 代码设置为 HTML 元素属性?像 OnClick 或 OnSend?那现在就别做了。使用此代码创建一个 javascript 函数,然后从单击/发送中调用该函数。将 JS 中的长表达式编码为属性是不值得的!只是浪费时间和精力。

如果所有其他方法都失败并且 JavaScript 发出正确,则查找您网站上的任何文本更正或文本突出显示或文本格式模块。很可能其中一个人误读了 html 实体并删除了分号,或者相反 - 他们在不需要时添加了它们。ASP.Net 本身通常可以正确完成其工作,它可以在需要的任何地方正确翻译实体,所以我先看看其他库。

于 2012-08-23T10:57:06.257 回答
0

你可以使用这样的东西:

String str=@"hello,,?!"

这应该转义所有字符或

String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);

这是手册:http: //msdn.microsoft.com/en-us/library/w3te6wfz.aspx

于 2012-08-23T10:49:39.623 回答
0

你还用字符串做什么?

似乎在那之后的某个地方,字符串被编码了。您可以使用 HttpUtility.HtmlDecode(str); 但首先你必须首先弄清楚你的字符串在哪里被编码。

请记住,如果您<%: %>在 aspx 或@yourvarRazor 中使用,它将自动编码。你必须用它@Html.Raw(yourvar)来压制它。

于 2012-08-23T11:00:42.363 回答