在处理包含特殊字符的旧版 DOI 时,需要注意在 URL 编码方面遵循特定的规范,以确保 DOI 的解析和通过 API 调用时能够成功。根据相关文档的说明,对于哈希符号(#)和尖括号(<>),处理方式如下:

1. **哈希符号(#)的处理:** 必须将哈希符号(#)编码为 `%23`。
2. **尖括号(<>)的处理:** 在使用 REST API 解析或检索元数据时,不应将左尖括号(<)编码为 `&lt;`,也不应将右尖括号(>)编码为 `&gt;`。

此外,文档还指出在解析 DOI 或从 REST API 检索元数据时,不应编码前斜杠(/)。

**示例说明:**

* **DOI 解析示例:** 当遇到包含特殊字符的 DOI 时,应使用编码后的格式进行解析。例如,对于包含特殊字符的 DOI,应使用 `https://doi.org/10.1002/(SICI)1521-3951(199911)216:1%3C135::AID-PSSB135%3E3.0.CO;2-%23`,而不是使用原始的 `https://doi.org/10.1002/(SICI)1521-3951(199911)216:1<135::AID-PSSB135>3.0.CO;2-#`。
* **REST API 调用示例:** 检索元数据时,也需要使用编码后的格式。例如,应使用 `https://api.crossref.org/works/10.1002/(SICI)1521-3951(199911)216:1%3C135::AID-PSSB135%3E3.0.CO;2-%23`,而不是使用 `https://api.crossref.org/works/10.1002/(SICI)1521-3951(199911)216:1<135::AID-PSSB135>3.0.CO;2-#`。

这些规范的遵循,对于确保包含特殊字符的旧版 DOI 在 URL 解析和 API 调用中能够被正确处理至关重要。

信息来源