網站doi2bib.org尋找出版物的 DOI 代碼並傳回有關出版物的資料。 DOI 代碼包含正斜杠,例如:
10.1037/dev0000663
有兩種方法可以獲得該出版物的數據:
- 去doi2bib.org並在文字方塊中輸入 DOI,或者
- 直接前往該 DOI 的 doi2bib URL:https://doi2bib.org/bib/10.1037%2Fdev0000663
在第二種方法中,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
解決方法:使用 CrossRef 的元資料傳送(文件:1,2)。書目資料可以使用基本的方法以人類可讀的形式返回元資料搜尋,可以採用 URL 編碼或不採用 URL 編碼的 DOI:
上面兩個 URL 傳回相同的結果,並且都在 MS Word 中運作。可以使用ReST API以JSON格式傳回結構化資料(1,2):
或在文本中使用基於連結的內容協商,在上述 API URL 後新增“/transform/application/x-bibtex”:
或透過取得免費帳戶並在 OpenURL 服務中使用其電子郵件地址(1,2,3),參數設定為“redirect=false”或“noredirect=true”:
https://doi.crossref.org/openurl/?pid= < [email protected] > &id=doi:10.1037/dev0000663&redirect=false
我仍然想知道是否有適當的解決方案可以讓 MS Word 和其他程式在不解碼 % 程式碼的情況下請求 URL。我不會在這裡接受我自己的答案,這樣如果有人發布答案,我就能夠接受一個好的答案。