![]() |
1
265
这个
|
![]() |
2
32
似乎没人意识到
这给了你
弃用的dontescape参数的两个值都没有任何区别,指定urikind也会得到相同的结果。尝试使用uribuilder也没有帮助:
这种回报
据我所知,框架实际上缺乏任何正确的方法。
我们可以尝试用正斜杠替换反斜杠,并将路径
一开始这似乎可行,但如果你给它一条路
这会故意留下+和:未编码,就像通常在Windows上那样。它也只对Latin1进行编码,因为Internet Explorer无法理解文件URL中的Unicode字符(如果编码)。 |
![]() |
3
7
VB.NET:
不同的输出:
一班轮:
|
![]() |
4
4
上面的解决方案不能在Linux上工作。
使用.NET核心,尝试执行
您需要给clr一些关于您拥有哪种URL的提示。 这工作:
…返回的字符串
这也适用于Windows。
发出…
|
![]() |
5
3
至少在.NET 4.5+中,您还可以执行以下操作:
|
![]() |
6
1
UrlCreateFromPath 拯救!嗯,不完全是,因为它不支持扩展和UNC路径格式,但这并不难克服:
如果路径以一个特殊的前缀开头,它将被删除。尽管文档没有提到它,但是函数输出URL的长度,即使缓冲区较小,所以我首先获取长度,然后分配缓冲区。 一些 非常 我有一个有趣的观察,当“\\device\path”被正确地转换为“file://device/path”时,特别是“\\localhost\path”被转换为“file:///path”。 winapi函数设法对特殊字符进行编码,但未对特定于Unicode的字符进行编码,这与 尿嘧啶尿路感染 建构者。在那种情况下, 阿贝特鲁里 包含正确编码的URL,而 原始字符串 可用于保留Unicode字符。 |