C# 字符串中缺少字符
每当一个名字中有“&”符号的艺术家出现时,我会在标签上写上“R3HAB VINAI”,而不是“R3HAB&VINAI”,我希望得到整个字符串,因为它对最终用户更有用。奇怪的是,音轨名称中出现了“&”符号。也许有人能告诉我我做错了什么 user.getRecentTracks中的last.fm JSON API数据C# 字符串中缺少字符,c#,json.net,last.fm,C#,Json.net,Last.fm,每当一个名字中有“&”符号的艺术家出现时,我会在标签上写上“R3HAB VINAI”,而不是“R3HAB&VINAI”,我希望得到整个字符串,因为它对最终用户更有用。奇怪的是,音轨名称中出现了“&”符号。也许有人能告诉我我做错了什么 user.getRecentTracks中的last.fm JSON API数据 { recenttracks:{ track:[ { artist:{ #text:
{
recenttracks:{
track:[
{
artist:{
#text:"R3HAB & VINAI",
mbid:"eb0fbe2c-6eb7-40bc-900b-3e056c158125"
},
name:"HOW WE PARTY",
streamable:"0",
mbid:"b410da12-f308-4e2f-af88-19c69312e450",
album:{
#text:"",
mbid:""
},
url:"https://www.last.fm/music/R3HAB+&+VINAI/_/HOW+WE+PARTY",
image:[
{
#text:"",
size:"small"
},
{
#text:"",
size:"medium"
},
{
#text:"",
size:"large"
},
{
#text:"",
size:"extralarge"
}
],
@attr:{
nowplaying:"true"
}
},
{
artist:{
#text:"Alan Walker",
mbid:""
},
name:"Sing me to Sleep",
streamable:"0",
mbid:"",
album:{
#text:"",
mbid:""
},
url:"https://www.last.fm/music/Alan+Walker/_/Sing+me+to+Sleep",
image:[
{
#text:"",
size:"small"
},
{
#text:"",
size:"medium"
},
{
#text:"",
size:"large"
},
{
#text:"",
size:"extralarge"
}
],
date:{
uts:"1501613749",
#text:"01 Aug 2017, 18:55"
}
}
],
@attr:{
user:"SomeName",
page:"1",
perPage:"1",
totalPages:"8676",
total:"8676"
}
}
}
C类列表
public class Rootobject
{
public Recenttracks recenttracks { get; set; }
}
public class Recenttracks
{
public Track[] track { get; set; }
public Attr attr { get; set; }
}
public class Attr
{
public string user { get; set; }
public string page { get; set; }
public string perPage { get; set; }
public string totalPages { get; set; }
public string total { get; set; }
}
public class Track
{
public Artist artist { get; set; }
public string name { get; set; }
public string streamable { get; set; }
public string mbid { get; set; }
public Album album { get; set; }
public string url { get; set; }
public Image[] image { get; set; }
public Attr1 attr { get; set; }
public Date date { get; set; }
}
public class Artist
{
[JsonProperty("#text")]
public string text { get; set; }
public string mbid { get; set; }
}
public class Album
{
public string text { get; set; }
public string mbid { get; set; }
}
public class Attr1
{
public string nowplaying { get; set; }
}
public class Date
{
public string uts { get; set; }
public string text { get; set; }
}
public class Image
{
public string text { get; set; }
public string size { get; set; }
}
当显示到WinForm时,需要转义符号并显示它。您可以用
&&
替换所有出现的代码
设置艺术家之前,请在包含艺术家的字符串上执行以下操作:
artist=artist.Replace(“&”、“&&&”)代码>当显示到WinForm时,需要转义符号并显示它。您可以用&&
替换所有出现的代码
设置艺术家之前,请在包含艺术家的字符串上执行以下操作:
artist=artist.Replace(“&”、“&&&”)代码>默认情况下,符号(&)被解释为“在下面的字符下面加下划线,使其成为键盘快捷键。”(当然,不显示符号。)因此,您有两个选项:或
- 将标签的
usememonic
属性设置为false
,告诉它不要试图解释任何符号,或者
- 将每个“与”替换为两个“与”,这是一个特殊的顺序,表示“不要使用此“与”。(当然,只显示一个和号。)
默认情况下,符号和(&)被解释为“在以下字符下面加下划线,并使其成为键盘快捷键。”(当然,不显示符号)。因此,您有两个选项:或
- 将标签的
usememonic
属性设置为false
,告诉它不要试图解释任何符号,或者
- 将每个“与”替换为两个“与”,这是一个特殊的顺序,表示“不要使用此“与”。(当然,只显示一个和号。)
您很可能需要避开符号
- 如果您正在使用windows窗体并将其显示在标签中,您可以通过将标签上的
useMememonic
属性切换为false
,在技术上做到这一点,而无需转义符号
- 如果您使用的不是标签,如果您不想退出,可以使用
TextFormatFlag
- 您可以使用
&
- 如果要在web上显示它,则需要使用
HttpUtility.HtmlEncode()
或将所有&
切换到&代码>
- 如果您喜欢使用另一种编码方式,可以使用不依赖于
System.Web的WebUtility.HtmlEncode()
您很可能需要避开符号
- 如果您正在使用windows窗体并将其显示在标签中,您可以通过将标签上的
useMememonic
属性切换为false
,在技术上做到这一点,而无需转义符号
- 如果您使用的不是标签,如果您不想退出,可以使用
TextFormatFlag
- 您可以使用
&
- 如果要在web上显示它,则需要使用
HttpUtility.HtmlEncode()
或将所有&
切换到&代码>
- 如果您喜欢使用另一种编码方式,可以使用不依赖于
System.Web的WebUtility.HtmlEncode()
您在哪里显示这些标签?在网页上?Winforms?两者都需要转义,但转义方式不同,就像WinForm标签上的转义一样?我认为您需要将和加倍。因此,将&
替换为&
。取决于字符串的显示方式。我们需要知道它是否是winform、xml、html等。根据您的情况,&
会有不同的解释。在winforms程序中,它还会保存到文本文件中,您在哪里显示这些标签?在网页上?Winforms?两者都需要转义,但转义方式不同,就像WinForm标签上的转义一样?我认为您需要将和加倍。因此,将&
替换为&
。取决于字符串的显示方式。我们需要知道它是否是winform、xml、html等。根据您的情况,&
会有不同的解释。在winforms程序中,它也会保存到文本文件中。您的意思是&代码>;)是的,谢谢你,我想你是说&代码>;)是的,谢谢你,哈哈