C# 移除或转换' 到(';)
我正在使用一个api,我注意到它返回时带有C# 移除或转换' 到(';),c#,html,.net,ascii,C#,Html,.net,Ascii,我正在使用一个api,我注意到它返回时带有“';s”,而不是撇号。因为我不会在html中显示这个文本,当我向用户显示时,这会使我的文本看起来很奇怪 如何删除或转换(首选)?我不知道我正在使用的这个api是否会发送更多这些特殊代码,因此我不知道是否可以简单地进行替换。从.NET 4.0开始,您可以使用(位于System.Web.dll程序集中的命名空间System.Web) 或您可以使用该函数,甚至不需要额外的引用(因为它位于命名空间System.Net中的System.dll程序集中) 用
“';s”
,而不是撇号。因为我不会在html中显示这个文本,当我向用户显示时,这会使我的文本看起来很奇怪
如何删除或转换(首选)?我不知道我正在使用的这个api是否会发送更多这些特殊代码,因此我不知道是否可以简单地进行替换。从.NET 4.0开始,您可以使用(位于
System.Web.dll
程序集中的命名空间System.Web
)
或您可以使用该函数,甚至不需要额外的引用(因为它位于命名空间System.Net
中的System.dll
程序集中)
用法:
string myStringToDecode = "Hello 'World'";
string decodedString = System.Web.HttpUtility.HtmlDecode(myStringToDecode);
// or
string decodedString = System.Net.WebUtility.HtmlDecode(myStringToDecode);
从.NET 1.0开始提供,如果您希望以更通用的方式解决此问题(即,做的不仅仅是这些),它将派上用场。一般配方如下所示:
MatchEvaluator ev = (Match m) => Char.ToString((char)Int32.Parse(m.Groups[1].Value));
string result = Regex.Replace("The king's key.";, @"&#(\d+);", ev);
你为什么不为此而唱歌呢。只需找到您的字符串并将其替换为所需的字符串
string myStringToDecode = "Hello 'World'";
myStringToDecode.Replace("'","'");
只需替换为数据类型转换和正则表达式的开销即可。我找到了了解MatchEvaluator的另一个很好的理由:)我在帖子中提到过,我不知道这个api有多少字符编码。我不想做一个庞大的替换列表。是的,我想到了这一点,但我不确定脚本标签和类似的坏东西会发生什么。我希望我使用的api能够处理这些不好的事情,但我最不想做的事情是再次激活它们(虽然因为它是一个应用程序,但如果我突然将它们显示在网页上,它将解码所有HTML实体(受支持)。我想你可以自己做一些测试。但是,只要确保您的应用程序处理得很好,就应该没有问题了?