本文提供有关 UNC 路径中的 URI 编码的一些信息,这些代码在 Windows 10 版本 1803 及更高版本中进行了字面解释。
适用于:
Windows 10 - 所有版本
原始 KB 编号:
4467268
Windows 10版本 1803 及更高版本的 Windows 中,通用命名约定 (包含 URI 编码字符的 URL) 路径无法引用) SharePoint 文档库等 (URL。
例如,如果路径
http://myserver/Shared Documents
是 URI 编码的,则路径会变为
http://myserver/Shared%20Documents
。 在Windows 10版本 1803 之前,可以使用 UNC 路径 \\myserver\shared%20documents。 升级到版本 1803 后,“%20”不再被解释为空格,而是文本值“%20”。 这可以阻止以前生成的链接解析到正确的 http 路径。
这是设计使然的。 应更新 UNC 路径以反映文本路径,并删除任何 URI 编码字符。 或者,使用解码路径的 file://so 方案。 (例如:file://\\myserver\shared%20documents.)
为了实现与本地 Windows 文件系统命名约定的奇偶校验,Windows 10版本 1803 在基于 Web 的路径上引入了对文件名和文件夹中其他字符的支持。
以前不受支持的字符之一是百分比符号 (%) 。 由于此字符是用于 URI 编码的转义字符,因此已对 URI 编码的 UNC 路径将不再解码。 相反,它将被视为文本路径。
Windows 样式路径不是 URI,因此不遵循正常的 URI 编码规则,因此在将 WebDAV 样式路径转换回 Windows 样式路径时,应解码在 URI 中使用百分比编码的任何字符。 同样,Windows 样式路径不使用百分比编码来表示文件名中的特殊字符,因此每当 WebClient 服务在转换为 URI 时观察到 Windows 样式路径中的百分比字符时,“%”字符也会被“%25”替换,即使“%”字符后跟两个十六进制数字。