C# 字符串中缺少字符

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:

每当一个名字中有“&”符号的艺术家出现时,我会在标签上写上“R3HAB VINAI”,而不是“R3HAB&VINAI”,我希望得到整个字符串,因为它对最终用户更有用。奇怪的是,音轨名称中出现了“&”符号。也许有人能告诉我我做错了什么

user.getRecentTracks中的last.fm JSON API数据

{  
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程序中,它也会保存到文本文件中。您的意思是
&;)是的,谢谢你,我想你是说
&;)是的,谢谢你,哈哈