字符文字中的字符太多

KJa*_*Jai 0 javascript

我正在使用StringBuilder添加一些脚本.脚本如下所示.

<script type='text/javascript'><!--    //<![CDATA[
    var m3_u = (location.protocol == 'https:' ? 'https://rre.rrt.com/sss.php' : 'https://rre.rrt.com/sss.php');
    var m3_r = Math.floor(Math.random() * 99965449);
    if (!document.MAX_used) document.MAX_used = ',';
    document.write("<scr" + "ipt type='text/javascript' src='" + m3_u);
    document.write("?zoneid=311120&amp;target=_top");
    document.write('&amp;cb=' + m3_r);
    if (document.MAX_used != ',') document.write("&amp;exclude=" + document.MAX_used);
    document.write(document.charset ? '&amp;charset=' + document.charset : (document.characterSet ? '&amp;charset=' + document.characterSet : ''));
    document.write("&amp;loc=" + escape(window.location));
    if (document.referrer) document.write("&amp;referer=" + escape(document.referrer));
    if (document.context) document.write("&context=" + escape(document.context));
    if (document.mmm_fo) document.write("&amp;mmm_fo=1");
    document.write("'><\/scr" + "ipt>");
//]]>-->
</script><noscript><a href='https://rre.rrt.com/sss.php?n=ad4565c1&amp;cb=2244' target='_top'><img src='https://rre.rrt.com/sss.php?zoneid=36540&amp;n=a535c1' border='0' alt='' /></a></noscript>
Run Code Online (Sandbox Code Playgroud)

当我使用String Builder添加它时,它会给出错误"字符文字中的字符过多"这就是我正在做的事情.怎么做?

sb.append(@"<script type='text/javascript'><!--    //<![CDATA[
    var m3_u = (location.protocol == 'https:' ? 'https://rre.rrt.com/sss.php' : 'https://rre.rrt.com/sss.php');
    var m3_r = Math.floor(Math.random() * 99965449);
    if (!document.MAX_used) document.MAX_used = ',';
    document.write("<scr" + "ipt type='text/javascript' src='" + m3_u);
    document.write("?zoneid=311120&amp;target=_top");
    document.write('&amp;cb=' + m3_r);
    if (document.MAX_used != ',') document.write("&amp;exclude=" + document.MAX_used);
    document.write(document.charset ? '&amp;charset=' + document.charset : (document.characterSet ? '&amp;charset=' + document.characterSet : ''));
    document.write("&amp;loc=" + escape(window.location));
    if (document.referrer) document.write("&amp;referer=" + escape(document.referrer));
    if (document.context) document.write("&context=" + escape(document.context));
    if (document.mmm_fo) document.write("&amp;mmm_fo=1");
    document.write("'><\/scr" + "ipt>");
//]]>-->
</script><noscript><a href='https://rre.rrt.com/sss.php?n=ad4565c1&amp;cb=2244' target='_top'><img src='https://rre.rrt.com/sss.php?zoneid=36540&amp;n=a535c1' border='0' alt='' /></a></noscript>

");
Run Code Online (Sandbox Code Playgroud)

Cer*_*rus 7

使用a的重点StringBuilder是逐个部分地构建字符串.如果将长字符串分解为逻辑部分,那么您就可以更容易地找出任何错误并进行修改(相信我,它会变得更容易阅读!).

此外,在C#中使用逐字字符串文字时,仍然需要使用另一个双引号来转义双引号.以下代码正确编译:

sb.Append(@"<script type='text/javascript'>");
sb.Append(@"<!--    //<![CDATA[");
sb.Append(@"var m3_u = (location.protocol == 'https:' ? 'https://rre.rrt.com/sss.php' : 'https://rre.rrt.com/sss.php');");
sb.Append(@"var m3_r = Math.floor(Math.random() * 99965449);");
sb.Append(@"if (!document.MAX_used) document.MAX_used = ',';"");");
sb.Append(@"document.write(""<script type='text/javascript' src='"" + m3_u);");
sb.Append(@"document.write(""?zoneid=311120&amp;target=_top"");");
sb.Append(@"document.write('&amp;cb=' + m3_r);");
sb.Append(@"if (document.MAX_used != ',') document.write(""&amp;exclude="" + document.MAX_used);");
sb.Append(@"document.write(document.charset ? '&amp;charset=' + document.charset : ");
sb.Append(@"(document.characterSet ? '&amp;charset=' + document.characterSet : ''));");
sb.Append(@"document.write(""&amp;loc="" + escape(window.location));");
sb.Append(@"if (document.referrer) document.write(""&amp;referer="" + escape(document.referrer));");
sb.Append(@"if (document.context) document.write(""&context="" + escape(document.context));");
sb.Append(@"if (document.mmm_fo) document.write(""&amp;mmm_fo=1"");");
sb.Append(@"document.write(""'><\/script>"");");
sb.Append(@"//]]>-->");
sb.Append(@"</script>");
sb.Append(@"<noscript>");
sb.Append(@"<a href='https://rre.rrt.com/sss.php?n=ad4565c1&amp;cb=2244' target='_top'>");
sb.Append(@"<img src='https://rre.rrt.com/sss.php?zoneid=36540&amp;n=a535c1' border='0' alt='' /></a>");
sb.Append(@"</noscript>");
Run Code Online (Sandbox Code Playgroud)