如何将\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":"杭州市"}