【问题标题】:do we need to escape the character '<'我们是否需要转义字符'<'
【发布时间】:2011-06-21 13:57:43
【问题描述】:

在 C# ASP.NET 中,如果字符串中有字符 。我们是否需要像这样逃避它:

string a = "\&lt;test\&gt;abcdef\&lt;/test\&gt;"

因为这个字符串将通过 web 服务发送到外部方法。 而在那个方法中,它会被转换成某种xml文件。

contentHtml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>" + contentHtml;
content_ws.AddContent(contentHtml);
//AddContent() method is a external method (via webservices)

例如,ô 现在转换为 ô。但我无法访问 de Web Service 中的代码

谢谢帮助

【问题讨论】:

  • 取决于您打算以后对字符串做什么,但很可能不是,您不必这样做。
  • 这个字符串有什么用途?你能告诉我们使用上下文吗?

标签: c# asp.net escaping


【解决方案1】:

不,您不需要转义这些字符。是什么阻止你自己尝试这个?

更新

根据您的进一步信息,我认为这取决于 Web 服务的预期。 Web 服务很可能会对传入的字符串数据进行编码。你试过这个吗?你目前的结果是什么?

【讨论】:

  • 是什么阻止您在问题中告诉我们这一点?仅仅询问将这些字符放入字符串中并不能告诉我们您将如何使用它。使用这些相关信息更新您的问题是值得的。
  • 我不知道 Web 服务的外观,也无法向任何人询问。例如:ô 转换为 ô
  • 你能告诉我们更多关于你在做什么吗?为什么要将此发送到 Web 服务?接下来发生什么?你在期待什么?
  • 我们正在使用 CMS 系统。当我们将此字符串提供给外部方法AddContent() 时。然后它将作为内容添加到 cms 系统中。但问题是,当我们有 é è 或 ô(或其他法语字符)时,它不能正确转换它。
【解决方案2】:

不。 &amp;lt;&amp;gt; 不需要转义。您可能需要转义 &amp;lt;&amp;gt; 的唯一时间是当字符串表示为 XML 内部的数据时,在这种情况下,&amp;lt; 必须是 &amp;lt;&amp;gt; 必须是 &amp;gt;

编辑:

asp.net 你可以使用

string a = "<test>abcdef</test>";
string encodedXml = HttpUtility.HtmlEncode(a);

【讨论】:

【解决方案3】:

我相信不需要转义字符。看看这个MSDN 链接

【讨论】:

    【解决方案4】:

    在发送之前确保字符串以 UTF-16 编码(似乎是您正在使用的那个)!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多