類別 System.Uri 中修正了一個錯誤,現在包含非 ASCII 字元的絕對 URI 路徑能在 Unix 平臺上正確解析。
變更描述
在 .NET 的舊版中,包含非 ASCII 字元的絕對 URI 路徑在 Unix 平臺上會被不正確剖析,導致路徑的區段重複。 (絕對路徑是開頭為 “/” 的路徑。已修正 .NET 5 的剖析問題。 如果您從舊版的 .NET 移至 .NET 5 或更新版本,您將取得由 Uri.AbsoluteUri、Uri.ToString()和其他 Uri成員所產生的不同值。
在 Unix 上執行時,請考慮下列程式代碼的輸出。
var myUri = new Uri("/üri");
Console.WriteLine($"AbsoluteUri: {myUri.AbsoluteUri}");
Console.WriteLine($"ToString: {myUri.ToString()}");
舊版 .NET 上的輸出:
AbsoluteUri: /%C3%BCri/%C3%BCri
ToString: /üri/üri
.NET 5 或更新版本的輸出:
AbsoluteUri: /%C3%BCri
ToString: /üri
推出的版本
5.0
建議的動作
如果您有預期並處理重複路徑區段的程式碼,您可以移除該程式碼。