如何將\x開頭的編碼轉換為字符串,如下數據:
var data = @"{\x22Province\x22:\x22\xE6\x9D\xAD\xE5\xB7\x9E\xE5\xB8\x82\x22}";
邏輯:
1、將\xdd的數據提取出來;
2、通過\x分隔出每個Char字符,即dd;
3、將得到的Char數組轉換為byte數組;
4、通過UTF8編碼獲取原始字符串;
轉換代碼如下所示:
var data = @"{\x22Province\x22:\x22\xE6\x9D\xAD\xE5\xB7\x9E\xE5\xB8\x82\x22}"; var result = Regex.Replace(data, @"((\\x\w{2})+)",data => { var value = data.Groups[1].Value; var b = value.Split(new string[] { @"\x" }, StringSplitOptions.RemoveEmptyEntries).Select(it => Convert.ToByte(it, 16)).ToArray(); return Encoding.UTF8.GetString(b); }); Console.WriteLine(result);
打印出來的結果:{"Province":"杭州市"}