编程语言
首页 > 编程语言> > C#-函数的名称是什么,与HttpUtility.JavaScriptStringEncode相反?

C#-函数的名称是什么,与HttpUtility.JavaScriptStringEncode相反?

作者:互联网

我需要评估字符串上的转义序列.
为了转义字符串,使用了HttpUtility.JavaScriptStringEncode或类似的东西.
我该如何进行相反的转换?

这是一个例子:

        var s = @"otehu""oeuhnoa
        oaehu
        oatehu
        oeu";
        var t = HttpUtility.JavaScriptStringEncode(s);
        var n = Decode(t);

我需要这样的功能解码,这将使n == s;

解决方法:

我发现此功能发布在另一个论坛上:

public static string JavaScriptStringDecode(string source)
{
    // Replace some chars.
    var decoded = source.Replace(@"\'", "'")
                .Replace(@"\""", @"""")
                .Replace(@"\/", "/")
                .Replace(@"\\", @"\")
                .Replace(@"\t", "\t")
                .Replace(@"\n", "\n");

    // Replace unicode escaped text.
    var rx = new Regex(@"\\[uU]([0-9A-F]{4})");

    decoded = rx.Replace(decoded, match => ((char)Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber))
                                            .ToString(CultureInfo.InvariantCulture));

    return decoded;
}

它为我工作

标签:escaping,c,net
来源: https://codeday.me/bug/20191101/1984991.html