URL 中的 URL 编码斜线在非浏览器链接中失败

URL 中的 URL 编码斜线在非浏览器链接中失败

网站doi2bib 网查找出版物的 DOI 代码并返回有关该出版物的数据。DOI 代码包括正斜杠,例如:

10.1037/dev0000663

有两种方法可以获取该出版物的数据:

在第二种方法中,DOI 中的斜线必须经过 URL 编码才能使用%2f。没有经过该编码的 URL 不起作用。因此,https://doi2bib.org/bib/10.1037/dev0000663不起作用。

现在,问题来了。如果我复制有效的 URL

 https://doi2bib.org/bib/10.1037%2Fdev0000663

进入 MS Word 或 Excel,链接不起作用,但会产生错误消息:

在此处输入图片描述

请注意,该错误消息中的 URL 显示正确。当鼠标悬停在 Word 中的 URL 上时,可能会出现以下提示:

在此处输入图片描述

请注意,此处的 URL 已被解码为%2F斜线。如果这是 Word 实际尝试访问的 URL,那么这就可以解释为什么它失败了。

我尝试将其转换%2F为,%252F看看是否能发送正确的 URL,但结果却不是这样。结果显示错误消息:

在此处输入图片描述

将鼠标悬停在 URL 上表明 Word%252F也转换为斜线,然后再次尝试转到错误的 URL:

在此处输入图片描述

除了 Word 和 Excel 之外,Adobe Acrobat 的“从网页创建 PDF”命令中的链接也不起作用。因此,该问题并非 MS Office 程序所特有。

我该如何编写此 URL 以便 Word 和其他程序能够正确遵循它?

答案1

解决方法:不要使用 DOI2bib,而是使用 CrossRef 的元数据传送(文档:12)。可以使用基本元数据搜索,可以采用 URL 编码的 DOI,也可以采用非 URL 编码的 DOI:

上述两个 URL 返回的结果相同,并且均适用于 MS Word。可以使用 ReST API (12):

或在文本中使用基于链接的内容协商,在上述 API URL 中添加“/transform/application/x-bibtex”后缀:

或者通过获取免费帐户并在 OpenURL 服务中使用其电子邮件地址以 XML 形式获取(123) 参数设置“redirect=false”或“noredirect=true”:

https://doi.crossref.org/openurl/?pid= < [email protected] > &id=doi:10.1037/dev0000663&redirect=false

我仍然想知道是否有适当的解决方案可以让 MS Word 和其他程序在不解码 % 代码的情况下请求 URL。我不会在这里接受我自己的答案,这样如果有人发布一个好的答案,我就可以接受。

相关内容