gpt4 book ai didi

c# - 如何解码用 JavaScriptStringEncoded 编码的字符串?

转载 作者:数据小太阳 更新时间:2023-10-29 05:39:25 39 4
gpt4 key购买 nike

有没有一种方法可以在 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;
}

最佳答案

你可以使用

HttpUtility.UrlDecode

http://msdn.microsoft.com/en-us/library/system.web.httputility.urldecode(v=vs.110).aspx

也在这里回答:Unescape JavaScript's escape() using C#

但是,UrlDecode 对某些字符(如 + 号,javascript 不会转义)和任何字符值 >= 128 有一些重大限制。使用 Microsoft.JScript.GlobalObject.unescape 可能是最可靠的,但我不'知道它的性能如何(即支持语言是什么。我想它很快,因为它现在是一个库)。

关于c# - 如何解码用 JavaScriptStringEncoded 编码的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982917/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com