Unix 上で ASCII 以外の文字を含む URI パスが正しく解析される
System.Uri クラス内のバグが修正され、Unix プラットフォーム上で ASCII 以外の文字を含む絶対 URI パスが正しく解析されるようになりました。
変更の説明
以前のバージョンの .NET では、Unix プラットフォーム上で ASCII 以外の文字を含む絶対 URI パスが正しく解析されず、パスのセグメントに重複が生じます。 (絶対パスは "/" で始まるパスです。) .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
推奨アクション
重複したパス セグメントの発生が予期される、および明らかであるコードがある場合は、そのコードを削除できます。
影響を受ける API
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET