gpt4 book ai didi

c# - Uri.UnescapeDataString 在不同的计算机上失败

转载 作者:太空狗 更新时间:2023-10-29 21:18:11 28 4
gpt4 key购买 nike

在我的开发计算机上,一切都运行良好,但当我在另一台 Windows7 计算机上测试该程序时,我收到了 System.UriFormatException: Invalid URI: There is an invalid sequence在字符串中。 在以下代码中:Uri.UnescapeDataString(section);

起初我以为第二台计算机正在从开发电脑接收不同的数据,所以我将失败的 html 字符串复制到一个文件并将我的代码缩减为:

static void Err(string s){/*Picked up by external logging*/}

private static void GetValue()
{
try
{
var html = File.ReadAllText("ld.txt");

//Retrieve section we want
var section = Regex.Match(
html,
"etc_etc(.*): ",
RegexOptions.Singleline)
.Groups[1].ToString();

Uri.UnescapeDataString(section);
}
catch (Exception ex)
{
Err(ex.ToString());
}
}

在 dev pc 上工作正常,但第二台计算机再次收到异常。他们都从完全相同的 ld.txt 文件加载完全相同的 html,然后用它做完全相同的事情。两台 PC 都是 x64 Win7。给了什么?

最佳答案

UnescapeDataString 似乎在 CLR 4.0 和 4.5 之间发生了变化

我可以在两台安装了不同版本 .Net 的机器上重现它(即使编译为目标 .Net 4.0)。

您的开发机器上是否有 VS 2012(因此有 .Net 4.5)而另一台计算机上只有 .Net 4?

此代码在 .Net 4.0 上抛出异常,在 .Net 4.5 上通过

class Program
{
static void Main(string[] args)
{
Console.WriteLine("CLR version: " + Environment.Version);
Console.WriteLine(Uri.UnescapeDataString("%"));
}
}

关于c# - Uri.UnescapeDataString 在不同的计算机上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15236048/

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