Outlook中URL中的双斜杠

Outlook中URL中的双斜杠,url,outlook,Url,Outlook,我们搜索页面的url如下所示: http://www.example.com/results/name/John/city/Miami/gender/Male 这会显示迈阿密每一个叫约翰的男人 当其中一个过滤器为空时,url将如下所示: http://www.example.com/results/name/John/city//gender/Male 因此,url中有两个斜杠 Outlook似乎不喜欢这样。当您单击第二个url时,它会删除两个斜杠中的一个。这会使url如下所示: http://

我们搜索页面的url如下所示:
http://www.example.com/results/name/John/city/Miami/gender/Male
这会显示迈阿密每一个叫约翰的男人

当其中一个过滤器为空时,url将如下所示:
http://www.example.com/results/name/John/city//gender/Male

因此,url中有两个斜杠

Outlook似乎不喜欢这样。当您单击第二个url时,它会删除两个斜杠中的一个。这会使url如下所示:
http://www.example.com/results/name/John/city/gender/Male

城市里的人叫约翰“性别”


解决此问题的最佳方法是什么?

标准是将两个斜杠折叠为一个,因此无法防止这种情况发生。在这些斜杠之间放一些东西,向搜索页面表明该字段为空,这可能是一个好主意

或者,您可以将搜索页面更改为使用以下查询字符串:


http://www.example.com/results?name=John&city=&gender=Male< /代码> 

尝试用ASCII代码2f(十进制47)替换斜线。

如果必须使用斜杠,请考虑在服务器端修复此斜杠。创建关键字列表(city | results |…),如果斜杠后跟一个关键字,则将其视为空条目。(已编辑)不应将双斜杠视为一个斜杠,但正如您所发现的,某些应用程序“修复”了此问题

解决此问题的另一种标准方法是使用占位符,通常是点,因为它没有特殊含义:

http://example.com/results/name/./city/amsterdam


这是Microsoft Office中的一个错误

允许使用带有两个连续斜杠的URL,但它们不常用。正如RFC所说(摘自附录A):

请注意,段定义为包含零个或多个字符。(你可能会争辩说这是一个规范错误,不应该被允许……但事实确实如此)

正如您所发现的,Microsoft Office将“修复”包含双斜杠的URL。这显然是一个故意的“清洁和一致性”特征。无法覆盖或禁用它


因此,正如其他人所建议的,您可能必须更改服务器格式化URL的方式。

您可以使用
-
而不是空白段。例如:

http://www.example.com/results/name/John/city/-/gender/Male

“Regkey”应该有帮助:您需要实现此密钥

Path: "HKEY_CURRENT_USER\Software\Microsoft\Office\Common"
Name: "AllowConsecutiveSlashesInUrlPathComponent"
Type: "REG_DWORD"
Value: "1"

有关实现和更多详细信息,请参见。

我同意Peter的观点,只需将第二个“/”替换为“%2F”或“%2F”就足够了。

我不喜欢将某些内容作为有效输入的空值放入其中。我理解。您应该选择是允许错误结果的错误URL(带有折叠斜杠),还是修复它。但是要警惕:一旦你开始调整你的应用程序以适应每一个其他有缺陷的程序,可能就看不到尽头了…@Robin:如果我看一下你的例子,空格将是一个不可接受的输入的很好候选,但字符可能会因你的应用程序而异。要保存,您应该将查询更改为Aaron建议的样式+1以更好地解释本标准。请注意,原始RFC 1738在路径方面具有相同的规范。这是对现有答案的评论,而不是新答案。谢谢。我正在使用Excel 2016,它仍然可以解决这个问题。
Path: "HKEY_CURRENT_USER\Software\Microsoft\Office\Common"
Name: "AllowConsecutiveSlashesInUrlPathComponent"
Type: "REG_DWORD"
Value: "1"