在C#中解码Javascript十六进制文字

时间:2013-12-04 07:55:20

标签: c# character-encoding

我有以下字符串:

string s = @"a=q\x26T=1";

我想把它转移到:

"a=q&T=1"

我怎么做C#而不仅仅是替换字符?还有其他各种转义字符,所以我不确定要使用哪种编码。

1 个答案:

答案 0 :(得分:1)

这有效:

var decodedString = Regex.Unescape(@"source=s_q\x26hl=en");

但是效果更好:

  var regex = new Regex(@"\\x([a-fA-F0-9]{2})");
  json = regex.Replace(json, match => char.ConvertFromUtf32(Int32.Parse(match.Groups[1].Value, System.Globalization.NumberStyles.HexNumber)));