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

 

 

 posted on 2021-05-31 13:47  F风  阅读(3021)  评论(0编辑  收藏  举报