具有非 ASCII 字元的 URL 路徑會在 Unix 上正確剖析
System.Uri 類別中的 Bug 已受到修正,所以包含非 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
建議的動作
如果您有程式碼預期和依賴重複的路徑線段,那麼您可以移除該程式碼。