UTF8编码转为中文字符串(c#)


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

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM