gpt4 book ai didi

c# - 具有哈希和 Uri LocalPath 处理的文件名

转载 作者:行者123 更新时间:2023-11-30 22:05:31 26 4
gpt4 key购买 nike

我在 C# 中编码,我有一个文件的 URI(可以是 UNC、网络服务等,这就是我需要使用 URI 的原因),我在 URI 指向一个文件的情况下运行名称中包含 # 的文件。

然后 URI 被解释为一个片段 uri.Fragment 不为空且 uri.LocalPath 被破坏,指向由 URI 表示的假设位置哈希。

  1. 有没有办法让 Uri 类“理解”# 是文件名的一部分?
  2. 如果不是,如何很好地处理这个问题,因为我的例子中的片段包含更多特殊字符 (Kanjis) 并被转义,所以简单的字符串操作是不够的。

最佳答案

您可以使用 System.UriBuilder 类。

UriBuilder builder1 = new UriBuilder("http://yourdomain.com/");
builder1.Path = @"hello world#シンガポール国.txt";
Uri url1 = builder1.Uri;

System.Diagnostics.Debug.WriteLine(url1.ToString());
// -> http://yourdomain.com/hello world%23シンガポール国.txt

System.Diagnostics.Debug.WriteLine(url1.LocalPath);
// -> /hello world#シンガポール国.txt

在这种情况下,Fragment 属性保持空白。 Uri 的 URL 形式将转义 hash 字符,因为它在该用法中具有特殊含义。 LocalPath 属性将保留 hash 字符而不对其进行编码,因为它在该上下文中是合法的。

关于c# - 具有哈希和 Uri LocalPath 处理的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24366208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com