如何解码这些数据?

时间:2016-12-08 01:17:35

标签: c# utf-8 base64

我以前从未见过这样的数据串。它由&#x后跟一些base64字符组成。完整的字符串如下所示:

{"16":{"list_price_min_16":"MTUuOTk=","is_mapp_16":"Tg==","offer_price_max_16":"MTUuOTk=","is_part_onsale_16":"Tg==","offer_price_min_16":"MTUuOTk=","list_price_max_16":"MTUuOTk=","total_savings_16":"MC4w"},"27":{"is_part_onsale_27":"Tg==","list_price_max_27":"MTUuOTk=","offer_price_max_27":"MTUuOTk=","total_savings_27":"MC4w","is_mapp_27":"Tg==","offer_price_min_27":"MTUuOTk=","list_price_min_27":"MTUuOTk="},"45":{"list_price_min_45":"MTUuOTk=","offer_price_max_45":"MTUuOTk=","list_price_max_45":"MTUuOTk=","total_savings_45":"MC4w","offer_price_min_45":"MTUuOTk=","is_part_onsale_45":"Tg==","is_mapp_45":"Tg=="},"09":{"total_savings_09":"MC4w","is_part_onsale_09":"Tg==","offer_price_max_09":"MTUuOTk=","offer_price_min_09":"MTUuOTk=","list_price_max_09":"MTUuOTk=","is_mapp_09":"Tg==","list_price_min_09":"MTUuOTk="},"20":{"list_price_max_20":"MTcuOTk=","offer_price_min_20":"MTcuOTk=","is_part_onsale_20":"Tg==","is_mapp_20":"Tg==","total_savings_20":"MC4w","list_price_min_20":"MTcuOTk=","offer_price_max_20":"MTcuOTk="},"28":{"offer_price_min_28":"MTUuOTk=","list_price_min_28":"MTUuOTk=","total_savings_28":"MC4w","is_part_onsale_28":"Tg==","list_price_max_28":"MTUuOTk=","is_mapp_28":"Tg==","offer_price_max_28":"MTUuOTk="},"06":{"offer_price_max_06":"MTUuOTk=","list_price_max_06":"MTUuOTk=","offer_price_min_06":"MTUuOTk=","list_price_min_06":"MTUuOTk=","is_mapp_06":"Tg==","total_savings_06":"MC4w","is_part_onsale_06":"Tg=="},"24":{"list_price_max_24":"MTUuOTk=","is_part_onsale_24":"Tg==","total_savings_24":"MC4w","list_price_min_24":"MTUuOTk=","offer_price_min_24":"MTUuOTk=","offer_price_max_24":"MTUuOTk=","is_mapp_24":"Tg=="},"25":{"total_savings_25":"MC4w","offer_price_max_25":"MTUuOTk=","list_price_max_25":"MTUuOTk=","list_price_min_25":"MTUuOTk=","is_mapp_25":"Tg==","offer_price_min_25":"MTUuOTk=","is_part_onsale_25":"Tg=="},"29":{"list_price_min_29":"MTUuOTk=","total_savings_29":"MC4w","offer_price_min_29":"MTUuOTk=","offer_price_max_29":"MTUuOTk=","list_price_max_29":"MTUuOTk=","is_mapp_29":"Tg==","is_part_onsale_29":"Tg=="},"19":{"list_price_min_19":"MTUuOTk=","total_savings_19":"MC4w","offer_price_min_19":"MTUuOTk=","is_part_onsale_19":"Tg==","is_mapp_19":"Tg==","list_price_max_19":"MTUuOTk=","offer_price_max_19":"MTUuOTk="},"04":{"is_part_onsale_04":"Tg==","offer_price_min_04":"MTUuOTk=","list_price_max_04":"MTUuOTk=","is_mapp_04":"Tg==","offer_price_max_04":"MTUuOTk=","list_price_min_04":"MTUuOTk=","total_savings_04":"MC4w"},"12":{"is_part_onsale_12":"Tg==","total_savings_12":"MC4w","is_mapp_12":"Tg==","list_price_min_12":"MTUuOTk=","list_price_max_12":"MTUuOTk=","offer_price_min_12":"MTUuOTk=","offer_price_max_12":"MTUuOTk="},"46":{"list_price_min_46":"MTUuOTk=","list_price_max_46":"MTUuOTk=","total_savings_46":"MC4w","is_part_onsale_46":"Tg==","offer_price_min_46":"MTUuOTk=","offer_price_max_46":"MTUuOTk=","is_mapp_46":"Tg=="},"47":{"is_part_onsale_47":"Tg==","list_price_min_47":"MTUuOTk=","offer_price_max_47":"MTUuOTk=","total_savings_47":"MC4w","is_mapp_47":"Tg==","list_price_max_47":"MTUuOTk=","offer_price_min_47":"MTUuOTk="}}

我如何在.NET中对此进行解码?

3 个答案:

答案 0 :(得分:3)

该字符串似乎是有效的JSON。您必须将编码的十六进制字符串转换为常规字符串。在这里:

string hexString = "YourEncodedHexString";
List<string> findhex = hexString.Split(new string[] { "&#", ";" }, StringSplitOptions.RemoveEmptyEntries).ToList();
StringBuilder sb = new StringBuilder();
foreach(string st in findhex)
{
    if(st.Substring(0, 1) == "x")
    {
        string hs = st.Substring(1, 2);
        sb.Append(Convert.ToChar(Convert.ToUInt32(hs, 16)));
    }
    else
    {
        sb.Append(st);
    }
}
String ascii = sb.ToString();
Console.WriteLine(ascii);

格式化的输出将是:

{
    "12": {
        "is_part_onsale_12": "Tg==",
        "total_savings_12": "MC4w",
        "is_mapp_12": "Tg==",
        "list_price_min_12": "MTUuOTk=",
        "list_price_max_12": "MTUuOTk=",
        "offer_price_min_12": "MTUuOTk=",
        "offer_price_max_12": "MTUuOTk="
    },
    "16": {
        "list_price_min_16": "MTUuOTk=",
        "is_mapp_16": "Tg==",
        "offer_price_max_16": "MTUuOTk=",
        "is_part_onsale_16": "Tg==",
        "offer_price_min_16": "MTUuOTk=",
        "list_price_max_16": "MTUuOTk=",
        "total_savings_16": "MC4w"
    },
    "19": {
        "list_price_min_19": "MTUuOTk=",
        "total_savings_19": "MC4w",
        "offer_price_min_19": "MTUuOTk=",
        "is_part_onsale_19": "Tg==",
        "is_mapp_19": "Tg==",
        "list_price_max_19": "MTUuOTk=",
        "offer_price_max_19": "MTUuOTk="
    },
    "20": {
        "list_price_max_20": "MTcuOTk=",
        "offer_price_min_20": "MTcuOTk=",
        "is_part_onsale_20": "Tg==",
        "is_mapp_20": "Tg==",
        "total_savings_20": "MC4w",
        "list_price_min_20": "MTcuOTk=",
        "offer_price_max_20": "MTcuOTk="
    },
    "24": {
        "list_price_max_24": "MTUuOTk=",
        "is_part_onsale_24": "Tg==",
        "total_savings_24": "MC4w",
        "list_price_min_24": "MTUuOTk=",
        "offer_price_min_24": "MTUuOTk=",
        "offer_price_max_24": "MTUuOTk=",
        "is_mapp_24": "Tg=="
    },
    "25": {
        "total_savings_25": "MC4w",
        "offer_price_max_25": "MTUuOTk=",
        "list_price_max_25": "MTUuOTk=",
        "list_price_min_25": "MTUuOTk=",
        "is_mapp_25": "Tg==",
        "offer_price_min_25": "MTUuOTk=",
        "is_part_onsale_25": "Tg=="
    },
    "27": {
        "is_part_onsale_27": "Tg==",
        "list_price_max_27": "MTUuOTk=",
        "offer_price_max_27": "MTUuOTk=",
        "total_savings_27": "MC4w",
        "is_mapp_27": "Tg==",
        "offer_price_min_27": "MTUuOTk=",
        "list_price_min_27": "MTUuOTk="
    },
    "28": {
        "offer_price_min_28": "MTUuOTk=",
        "list_price_min_28": "MTUuOTk=",
        "total_savings_28": "MC4w",
        "is_part_onsale_28": "Tg==",
        "list_price_max_28": "MTUuOTk=",
        "is_mapp_28": "Tg==",
        "offer_price_max_28": "MTUuOTk="
    },
    "29": {
        "list_price_min_29": "MTUuOTk=",
        "total_savings_29": "MC4w",
        "offer_price_min_29": "MTUuOTk=",
        "offer_price_max_29": "MTUuOTk=",
        "list_price_max_29": "MTUuOTk=",
        "is_mapp_29": "Tg==",
        "is_part_onsale_29": "Tg=="
    },
    "45": {
        "list_price_min_45": "MTUuOTk=",
        "offer_price_max_45": "MTUuOTk=",
        "list_price_max_45": "MTUuOTk=",
        "total_savings_45": "MC4w",
        "offer_price_min_45": "MTUuOTk=",
        "is_part_onsale_45": "Tg==",
        "is_mapp_45": "Tg=="
    },
    "46": {
        "list_price_min_46": "MTUuOTk=",
        "list_price_max_46": "MTUuOTk=",
        "total_savings_46": "MC4w",
        "is_part_onsale_46": "Tg==",
        "offer_price_min_46": "MTUuOTk=",
        "offer_price_max_46": "MTUuOTk=",
        "is_mapp_46": "Tg=="
    },
    "47": {
        "is_part_onsale_47": "Tg==",
        "list_price_min_47": "MTUuOTk=",
        "offer_price_max_47": "MTUuOTk=",
        "total_savings_47": "MC4w",
        "is_mapp_47": "Tg==",
        "list_price_max_47": "MTUuOTk=",
        "offer_price_min_47": "MTUuOTk="
    },
    "09": {
        "total_savings_09": "MC4w",
        "is_part_onsale_09": "Tg==",
        "offer_price_max_09": "MTUuOTk=",
        "offer_price_min_09": "MTUuOTk=",
        "list_price_max_09": "MTUuOTk=",
        "is_mapp_09": "Tg==",
        "list_price_min_09": "MTUuOTk="
    },
    "06": {
        "offer_price_max_06": "MTUuOTk=",
        "list_price_max_06": "MTUuOTk=",
        "offer_price_min_06": "MTUuOTk=",
        "list_price_min_06": "MTUuOTk=",
        "is_mapp_06": "Tg==",
        "total_savings_06": "MC4w",
        "is_part_onsale_06": "Tg=="
    },
    "04": {
        "is_part_onsale_04": "Tg==",
        "offer_price_min_04": "MTUuOTk=",
        "list_price_max_04": "MTUuOTk=",
        "is_mapp_04": "Tg==",
        "offer_price_max_04": "MTUuOTk=",
        "list_price_min_04": "MTUuOTk=",
        "total_savings_04": "MC4w"
    }
}

而实际未触及的输出将是:

{"16":{"list_price_min_16":"MTUuOTk=","is_mapp_16":"Tg==","offer_price_max_16":"MTUuOTk=","is_part_onsale_16":"Tg==","offer_price_min_16":"MTUuOTk=","list_price_max_16":"MTUuOTk=","total_savings_16":"MC4w"},"27":{"is_part_onsale_27":"Tg==","list_price_max_27":"MTUuOTk=","offer_price_max_27":"MTUuOTk=","total_savings_27":"MC4w","is_mapp_27":"Tg==","offer_price_min_27":"MTUuOTk=","list_price_min_27":"MTUuOTk="},"45":{"list_price_min_45":"MTUuOTk=","offer_price_max_45":"MTUuOTk=","list_price_max_45":"MTUuOTk=","total_savings_45":"MC4w","offer_price_min_45":"MTUuOTk=","is_part_onsale_45":"Tg==","is_mapp_45":"Tg=="},"09":{"total_savings_09":"MC4w","is_part_onsale_09":"Tg==","offer_price_max_09":"MTUuOTk=","offer_price_min_09":"MTUuOTk=","list_price_max_09":"MTUuOTk=","is_mapp_09":"Tg==","list_price_min_09":"MTUuOTk="},"20":{"list_price_max_20":"MTcuOTk=","offer_price_min_20":"MTcuOTk=","is_part_onsale_20":"Tg==","is_mapp_20":"Tg==","total_savings_20":"MC4w","list_price_min_20":"MTcuOTk=","offer_price_max_20":"MTcuOTk="},"28":{"offer_price_min_28":"MTUuOTk=","list_price_min_28":"MTUuOTk=","total_savings_28":"MC4w","is_part_onsale_28":"Tg==","list_price_max_28":"MTUuOTk=","is_mapp_28":"Tg==","offer_price_max_28":"MTUuOTk="},"06":{"offer_price_max_06":"MTUuOTk=","list_price_max_06":"MTUuOTk=","offer_price_min_06":"MTUuOTk=","list_price_min_06":"MTUuOTk=","is_mapp_06":"Tg==","total_savings_06":"MC4w","is_part_onsale_06":"Tg=="},"24":{"list_price_max_24":"MTUuOTk=","is_part_onsale_24":"Tg==","total_savings_24":"MC4w","list_price_min_24":"MTUuOTk=","offer_price_min_24":"MTUuOTk=","offer_price_max_24":"MTUuOTk=","is_mapp_24":"Tg=="},"25":{"total_savings_25":"MC4w","offer_price_max_25":"MTUuOTk=","list_price_max_25":"MTUuOTk=","list_price_min_25":"MTUuOTk=","is_mapp_25":"Tg==","offer_price_min_25":"MTUuOTk=","is_part_onsale_25":"Tg=="},"29":{"list_price_min_29":"MTUuOTk=","total_savings_29":"MC4w","offer_price_min_29":"MTUuOTk=","offer_price_max_29":"MTUuOTk=","list_price_max_29":"MTUuOTk=","is_mapp_29":"Tg==","is_part_onsale_29":"Tg=="},"19":{"list_price_min_19":"MTUuOTk=","total_savings_19":"MC4w","offer_price_min_19":"MTUuOTk=","is_part_onsale_19":"Tg==","is_mapp_19":"Tg==","list_price_max_19":"MTUuOTk=","offer_price_max_19":"MTUuOTk="},"04":{"is_part_onsale_04":"Tg==","offer_price_min_04":"MTUuOTk=","list_price_max_04":"MTUuOTk=","is_mapp_04":"Tg==","offer_price_max_04":"MTUuOTk=","list_price_min_04":"MTUuOTk=","total_savings_04":"MC4w"},"12":{"is_part_onsale_12":"Tg==","total_savings_12":"MC4w","is_mapp_12":"Tg==","list_price_min_12":"MTUuOTk=","list_price_max_12":"MTUuOTk=","offer_price_min_12":"MTUuOTk=","offer_price_max_12":"MTUuOTk="},"46":{"list_price_min_46":"MTUuOTk=","list_price_max_46":"MTUuOTk=","total_savings_46":"MC4w","is_part_onsale_46":"Tg==","offer_price_min_46":"MTUuOTk=","offer_price_max_46":"MTUuOTk=","is_mapp_46":"Tg=="},"47":{"is_part_onsale_47":"Tg==","list_price_min_47":"MTUuOTk=","offer_price_max_47":"MTUuOTk=","total_savings_47":"MC4w","is_mapp_47":"Tg==","list_price_max_47":"MTUuOTk=","offer_price_min_47":"MTUuOTk="}}

答案 1 :(得分:1)

字符串似乎是一个Json文件。每个&#x后跟两个十六进制字符。您可以查看here以查看ascii表。

答案 2 :(得分:1)

这似乎是编码的JSON:

您可以使用C#轻松解码它。

static int HexToInt (char hexChar)
{
    hexChar = char.ToUpper (hexChar);

    return (int)hexChar < (int)'A' ?
        ((int)hexChar - (int)'0') :
        10 + ((int)hexChar - (int)'A');
}

public static string Decode (string s)
{
    var result = new StringBuilder ();
    for (int i = 0; i < s.Length; i++) {
        char ch = s [i];
        if (ch == '&') {
            ch = Convert.ToChar (HexToInt (s [i + 3]) * 16 +
                                 HexToInt (s [i + 4]));
            i += 5;
        }
        result.Append (ch);
    }
    return result.ToString ();
}

解码结果如下:https://gist.github.com/viniciusjarina/c394714744c5036c2b32aa17ee58dbee