Unix 上で ASCII 以外の文字を含む URI パスが正しく解析される

System.Uri クラス内のバグが修正され、Unix プラットフォーム上で ASCII 以外の文字を含む絶対 URI パスが正しく解析されるようになりました。

変更の説明

以前のバージョンの .NET では、Unix プラットフォーム上で ASCII 以外の文字を含む絶対 URI パスが正しく解析されず、パスのセグメントに重複が生じます。 (絶対パスは "/" で始まるパスです。) .NET 5 の解析の問題が修正されました。 以前のバージョンの .NET から .NET 5 以降に移行すると、Uri.AbsoluteUriUri.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

重複したパス セグメントの発生が予期される、および明らかであるコードがある場合は、そのコードを削除できます。

影響を受ける API