如何转义HTML字符?在.NET中 - > &安培; QUOT;

时间:2010-07-02 00:19:44

标签: .net html

如何在.NET中转义HTML字符?

我从json字符串中抓取html,在标题中我得到"more text。看起来我需要做两次以使"成为"然后成为'''。

如何在.NET中转义所有文本html转义码?

4 个答案:

答案 0 :(得分:29)

如果你必须做两次,那么你已经对你的源字符串进行了双重编码,所以你必须对其进行双重解码才能恢复原始(未编码的)字符串。

您可以将System.Web.HttpUtility.HtmlEncode()HtmlDecode()用于这些目的。

答案 1 :(得分:4)

查看HttpUtility课程。它有一些有用的静态函数。

但是,正如@codekaizen指出的那样,你看到的例子看起来是双重编码的。如果您无法控制源,那么请使用HttpUtility中的HtmlDecode和(可能?)UrlDecode函数进行操作,以便您可以幸运地撤消源代码的错误。

答案 2 :(得分:2)

看起来您的原始字符串是双重编码的。 quot;只是一个部分实体,它不能单独解码为字符。如果你从一个你无法控制的网页上获得标题,你几乎无能为力,除非你没有,所以你需要进行双重解码。

答案 3 :(得分:1)

是的,你必须对字符串进行两次HTML解码,因为它似乎被编码了两次。

您应该查看源代码,并找出字符串首先是HTML编码的原因。它不应该,甚至不是一次。 JSON字符串不是HTML,因此根本不应该进行HTML编码。

要在JSON字符串中对引号进行编码,请使用反斜杠,因此正确的JSON应如下所示:

{"title":"\"I Won't Let Them Take You\""}