HtmlDecode - 你会

时间:2013-11-22 02:13:58

标签: c# json encoding special-characters decoding

public static UserItem DownloadJSONString(string urlJson)
{
    using (WebClient wc = new WebClient())
    {
        var json = wc.DownloadString(urlJson);
        UserItem userItems = JsonConvert.DeserializeObject<RootObject>(json);

        return userItems;
    }            
}

我正在研究Json文件以反序列化C#poco类,如下所示:

var root = JsonConvert.DeserializeObject<RootObject>(json);

我注意到它从you’ll转换为you’ll我不确定它是从哪里来的,我在浏览器中查看了json文件,它呈现为{{1 }} NOT you’ll

我试过了you’ll但没有解码。

PS:我不确定这是否有帮助,但我正在使用HttpUtility.HtmlDecode进行反序列化

1 个答案:

答案 0 :(得分:0)

这可能不是特定于JSON解析器的问题。

更有可能的是,问题在于您如何获得json。它似乎是一个编码问题 - 也许您正在读取使用Windows-1252或ISO-8859-1编码的文件,但读者将其视为UTF-8。反之亦然。

WebClient.DownloadString使用提供的Encoding进行此转换。您需要明确设置它:

public static UserItem DownloadJSONString(string urlJson)
{
    using (WebClient wc = new WebClient())
    {
        wc.Encoding = Encoding.UTF8;

        var json = wc.DownloadString(urlJson);
        UserItem userItems = JsonConvert.DeserializeObject<RootObject>(json);

        return userItems;
    }            
}