是否有方法或方法将包含混合字符和ASCII十六进制代码的字符串转换为仅包含字符的字符串?
e.g。如果我给它输入Hello\x26\x2347\x3bWorld
,它将返回Hello/World
?
由于
答案 0 :(得分:3)
又快又脏:
static void Main(string[] args)
{
Regex regex = new Regex(@"\\x[0-9]{2}");
string s = @"Hello\x26\x2347World";
var matches = regex.Matches(s);
foreach(Match match in matches)
{
s = s.Replace(match.Value, ((char)Convert.ToByte(match.Value.Replace(@"\x", ""), 16)).ToString());
}
Console.WriteLine(s);
Console.Read();
}
使用HttpUtility.HtmlDecode
解码生成的字符串。
答案 1 :(得分:1)
我不确定那些特定的字符代码,但您可以使用某种正则表达式来查找所有字符代码并仅转换它们。虽然如果字符代码的长度不同,可能很难确保它们不会与字符串中的任何正常数字/数字混淆。