我从web服务端点获取数据,并将其放入每个循环中的列表中。该服务从Wordpress网站获取数据。
var list = new ItemList
(
(string)data.id.ToString(),
(string)data.name,
(string)subcategory
);
然后我在XAML页面上打印这个。代码运行良好,因为它成功地从服务中获取数据,并将其打印在我的windows 8应用程序的页面上。
但是,在(string)data.name,
中,即项目的名称,如果名称包含"&“,则在应用程序中显示为$#038;
。另外,如果项目名包含"'",撇号为s,则它将显示为’.
例如:D& G,显示为D $#038;G
"&“和”“作为这些奇怪的符号出现。
我如何摆脱这些并修复它,以便它们在应用程序中正确呈现。
发布于 2014-02-12 10:49:27
你可以使用WebUtility.HtmlDecode方法(字符串)
或者,如果不想添加其他库,也可以使用。
public string Decode(string text)
{
var replacements = new Dictionary<string, char> {
{ "’", ''' },
// ...etc
}
var sb = new StringBuilder( text );
foreach( var c in replacements.Keys ) {
sb.Replace( c.ToString(), replacements[c] );
}
return sb.ToString();
}
发布于 2014-02-12 11:08:19
该服务似乎正在返回XML转义实体。&
指的是代码为(十进制) 38 (即&
)的字符。’
类似,意味着代码为8217 (即’
)。
您可以使用System.Web.HttpUtility.HtmlDecode(inputString)
对它们进行解码,但这需要对System.Web的引用。如果您不想或不能引用它,您可以尝试这样的方法:
var xml = new XmlDocument();
xml.LoadXml("<x>" + inputString + "</x>");
var output = xml.InnerText;
给定Testing ’stuff" & things
,它将返回Testing ’stuff" & things
。
如果你可以的话,我会和HtmlDecode()
一起去,但是除非你没有其他选择,否则绝对要尽量避免翻滚你自己的解码器。
https://stackoverflow.com/questions/21736625
复制相似问题