10

我正在使用一个 api,我注意到它带有"'s"而不是撇号。由于我不会在 html 中显示此文本,因此当我向用户显示时,这会使我的文本看起来很奇怪。

如何删除或转换(首选)?我不知道我正在使用的这个 api 是否会发送更多这些特殊代码,所以我不知道我是否可以简单地进行替换。

4

3 回答 3

16

从 .NET 4.0 开始,您可以使用System.Web.HttpUtility.HtmlDecode(位于System.Web.dll程序集中,在 namespace 中System.Web)。

或者你可以使用这个System.Net.WebUtility.HtmlDecode函数,你甚至不需要额外的引用(因为它位于System.dll程序集中,在 namespace 中System.Net)。

用法:

string myStringToDecode = "Hello 'World'";

string decodedString = System.Web.HttpUtility.HtmlDecode(myStringToDecode);
// or
string decodedString = System.Net.WebUtility.HtmlDecode(myStringToDecode);
于 2013-06-17T23:18:36.753 回答
0

你为什么不为此目的使用String.Replace Method (String, String)。只需找到您的字符串并将其替换为您需要的字符串即可。

string myStringToDecode = "Hello 'World'";
myStringToDecode.Replace("'","'");
于 2013-06-18T06:09:10.030 回答
0

MatchEveluator从 .NET 1.0开始可用,如果您想以更通用的方式解决此问题 - 即不仅仅是HTML 字符解码,它会派上用场。一般配方如下所示:

MatchEvaluator ev = (Match m) => Char.ToString((char)Int32.Parse(m.Groups[1].Value));
string result = Regex.Replace("The king's key.";, @"&#(\d+);", ev);
于 2013-06-17T23:31:49.347 回答