【问题标题】:Create a new Uri from an Absolute Uri AS IT IS?从 Absolute Uri 按原样创建新 Uri?
【发布时间】:2015-01-05 05:44:42
【问题描述】:

我想在替换原始 Uri 中的一些字符后创建一个新 Uri。 我在打电话

string original = uri.AbsoluteUri.Replace("foo", "bar").Replace("xyz", "abc");

现在,在替换实例之后,当我尝试从字符串创建新 Uri 时

Uri newUri = new Uri(original);

Uri 始终以 Uri 的 ToString() 表示形式返回,即它是人类可读的,即 - Uri 保留 Spaces 而不是 %20,这 不是 我想要的拥有。

为了更清楚:

原始字符串 = http://foo.example.com/images/Cute%20Cats/New%20Images/cat-1.jpg

新的 Uri = http://foo.example.com/images/Cute Cats/New Images/cat-1.jpg

预期 = http://foo.example.com/images/Cute%20Cats/New%20Images/cat-1.jpg

那么,最后我怎样才能从上面的原始字符串创建一个新的 Uri,它是原样的?

【问题讨论】:

    标签: c# uri spaces


    【解决方案1】:

    您可以使用OriginalString 属性来显示转义的uri。

    Console.WriteLine(newUri.OriginalString);
    

    您看到的转义版本确实存在于您的Uri 对象中,但调用它的ToString 方法将显示未转义版本。

    【讨论】:

    • 我没有打电话给ToString(),请仔细阅读问题!
    • 您如何看待确认 URI 未正确创建的值?您的问题实际上并未提供有关您在何处看到新的不正确 URI 的信息,因此我猜测并假设您正在将其打印在称为 ToString 方法(例如 Console.WriteLine 方法)的某个地方。
    猜你喜欢
    • 2018-01-13
    • 2023-04-04
    • 2014-04-14
    • 2012-09-12
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    相关资源
    最近更新 更多