As a comment to an Azure question just now, @smarx noted
I think it\'s generally better to do blob.Uri.AbsoluteUri than blob.Uri.ToString().
Since everybody seems to think that uri.AbsoluteUri is better, but because it fails with relative paths, then probably the universal way would be:
uri.AbsoluteUri
Uri uri = new Uri("fuu/bar.xyz", UriKind.Relative); string notCorruptUri = Uri.EscapeUriString(uri.ToString());