Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有用于.Net的org.apache.commons.lang.StringEscapeUtils的实现?_C#_Java_.net_Apache Commons - Fatal编程技术网

C# 是否有用于.Net的org.apache.commons.lang.StringEscapeUtils的实现?

C# 是否有用于.Net的org.apache.commons.lang.StringEscapeUtils的实现?,c#,java,.net,apache-commons,C#,Java,.net,Apache Commons,我正在移植我编写的一个Java项目,该项目使用该类(特别是 escapeXml unescapeXml escapeHtml unescapeHtml 方法)。是否有一个与.Net相当的版本?或者可能是一些完全符合逻辑的C代码来完成同样的事情?使用System.Web for HTML有: 对于XML转义,可以使用System.Security命名空间中的。然而,据我所知,没有一种等效于unescape的方法。您必须编写自己的方法来替换编码的XML,例如和&等及其等价物。转义方法

我正在移植我编写的一个Java项目,该项目使用该类(特别是

escapeXml
unescapeXml
escapeHtml
unescapeHtml

方法)。是否有一个与.Net相当的版本?或者可能是一些完全符合逻辑的C代码来完成同样的事情?

使用System.Web for HTML有:

对于XML转义,可以使用System.Security命名空间中的。然而,据我所知,没有一种等效于unescape的方法。您必须编写自己的方法来替换编码的XML,例如
&等及其等价物。转义方法的链接列出了其他项。

您可以使用和替换Html。可以找到XML转义的选项。

签出类

HttpServerUtility.HtmlEncode、HtmlDecode、UrlDecode等

也适用于XML:

公共静态类StringEscapeUtils
{
公共静态字符串EscapeXml(字符串未转义)
{
返回SecurityElement.Escape(未转义);
}
公共静态字符串UnescapeXml(字符串转义)
{
返回转义。替换(“,”)
.Replace(“”,“\”)
.替换(“'”,“”)
.替换(“&;”、“&”);
}
公共静态字符串转义HTML(字符串未转义)
{
返回HttpUtility.HtmlEncode(未转换);
}
公共静态字符串UnescapeHtml(字符串转义)
{
返回HttpUtility.HtmlDecode(转义);
}
}

我把它作为一半的答案(只需要XML部分)来投票,而且响应非常快!我要说的是你搞定了这个。XML不逃避实际上是我目前正在执行的任务中最重要的事情,但知道系统名称空间中没有可查看的位置至少比整天阅读MSDN文章要好。哦,是的,Mageed的响应非常快,比我快了好几英里。@Jason:Luke的响应显示了一个示例方法,这样可以节省您自己的时间。还请注意,其他人建议使用HttpServerUtility而不是HttpUtility。编码/解码类似,但区别在于HttpServerUtility位于网站上下文中,通过
Server
对象公开功能,并在内部使用HttpUtility。在该上下文之外,您可以直接使用HttpUtility。因此,根据您的项目类型,它可以归结为可用的方法。@Ahmad:HttpServerUtility上的
HtmlEncode
/
HtmlDecode
方法是静态的,可以直接调用,而不仅仅是通过ASP.NET中公开的
服务器
对象。然而,由于这些方法只是直接传递到等价的
HttpUtility
方法,因此直接使用
HttpUtility
更为合理。我喜欢将这些不同的函数封装到StringEscapeUtils类中。这些反应在有用性方面不相上下。我对他们两个都投赞成票,但我不得不选择一个作为“答案”,所以我选择了第一个。先生,你确实赢得了17.1公里的声誉。
public static class StringEscapeUtils
{
    public static string EscapeXml(string unescaped)
    {
        return SecurityElement.Escape(unescaped);
    }

    public static string UnescapeXml(string escaped)
    {
        return escaped.Replace("&lt;", "<")
                      .Replace("&gt;", ">")
                      .Replace("&quot;", "\"")
                      .Replace("&apos;", "'")
                      .Replace("&amp;", "&");
    }

    public static string EscapeHtml(string unescaped)
    {
        return HttpUtility.HtmlEncode(unescaped);
    }

    public static string UnescapeHtml(string escaped)
    {
        return HttpUtility.HtmlDecode(escaped);
    }
}