11

C# で HttpUtility.JavaScriptStringEncode() でエンコードされた文字列をデコードする方法はありますか?

エンコードされた文字列の例:

<div class=\"header\"><h2>\u00FC<\/h2><script>\n<\/script>\n

私の一時的な解決策は次のとおりです。

public static string JavaScriptStringDecode(string source)
{
    // Replace some chars.
    var decoded = source.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;
}
4

3 に答える 3

0

いいえ、自分で実装する必要があります。その理由は、そのようなメソッドには意図的な使用法がないからです! あなたがおそらく達成しようとしていることのために、単に使用しないのはなぜですか

HttpServerUtility.HtmlEncode(...)

HttpServerUtility.HtmlDecode(...)
于 2013-02-20T15:24:06.093 に答える
0

HttpUtility.JavaScriptStringEncode の代わりに HttpUtility.UrlEncode を使用し、次に HttpUtility.UrlDecode を使用します。

于 2020-11-12T06:06:43.860 に答える