如何在.NET中转义HTML字符?
我从JSON字符串中获取HTML,标题中出现了"more text
。看起来我需要两次转义才能将"
变成"
,然后再将其转换为'"'。
如何在.NET中转义所有文本的HTML转义代码?
如果你需要重复操作两次,那么你的源字符串已经被双重编码了,因此你需要进行双重解码才能恢复到原始(未编码)字符串。
为此,可以使用System.Web.HttpUtility.HtmlEncode()
和 HtmlDecode()
方法。
HtmlDecode
和(也许?)UrlDecode
函数进行调整,以便您可以幸运地撤消源代码中的错误。看起来你的原始字符串被双重编码了。 quot;
只是一个部分实体,它本身不能被解码为字符。如果你正在从一个你无法控制的网页获取标题,那么你所能做的就是像你所说的那样进行双重解码。
是的,你需要对字符串进行两次HTML解码,因为它似乎被编码了两次。
也许你应该查看源代码,找出为什么字符串首先被编码为HTML。它不应该被编码,甚至不止一次。JSON字符串不是HTML,因此根本不应该被编码为HTML。
要在JSON字符串中编码引号,可以使用反斜杠,因此正确的JSON应该类似于:
{"title":"\"I Won't Let Them Take You\""}