在 Unix 上正确分析包含非 ASCII 字符的 URI 路径
在 System.Uri 类中修复了一个 bug,包含非 ASCII 字符的绝对 URI 路径现在可以在 Unix 平台上正确分析。
更改描述
在早期版本的 .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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈