在我的開發計算機上,一切正常,工作正常,但是當我在不同的Windows7計算機上測試該程序時,我得到一個System.UriFormatException
:無效的URI:字符串中存在無效序列。在下面的代碼:Uri.UnescapeDataString(section);
Uri.UnescapeDataString在另一臺計算機上失敗
起初我以爲第二臺計算機從開發PC接收不同的數據,所以我複製這是沒有一個文件的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。是什麼賦予了?
通過.NET版本和補丁?有可能是一個補丁,另一個不是...... ld.txt中產生錯誤的行是什麼? – nhahtdh 2013-03-05 23:22:46
沒有檢查,但應用程序是用4.0構建的。我會看看更新是否有幫助(如果有的話)。 – natli 2013-03-05 23:23:45
它可能是文本編碼問題嗎?一臺計算機具有不同於其他默認文本編碼的編碼?你是否證實了計算機1上的字符串「section」與計算機2上的「section」完全相同?兩者都運行相同版本的.NET? – 2013-03-05 23:24:11