为什么在 mailto 链接的主题中使用方括号会产生转义空格?

为什么在 mailto 链接的主题中使用方括号会产生转义空格?

当我发送电子邮件时,我喜欢[recipient]在主题中包含一些字符,这样我就可以快速识别回复;请注意方括号。据我所知,这曾经hrefhyperref包中使用 find 时有效,但今天我注意到,当我单击打开电子邮件客户端撰写邮件时,链接预览(我期望如此)和主题中会出现可见%20字符(我不记得以前这是个问题)。

以下是 MWE:

% !TEX program = lualatexmk
% !TEX encoding = UTF-8 Unicode

\documentclass{article}
\usepackage{hyperref}

\begin{document}
Email: \href{mailto:[email protected]?subject=from documentation}{[email protected]}

Email: \href{mailto:[email protected]?subject=something from documentation}{[email protected]}

Email: \href{mailto:[email protected]?subject=[something] from documentation}{[email protected]}
\end{document}

当我将鼠标悬停在链接预览上时,这三个都会显示显式转义空格(我在 macOS 上使用 TeXShop 和 Preview)。当我单击前两个打开我的电子邮件客户端时,空格会在主题行中正确呈现。但是,引入方括号会使空格%20出现在主题行中。

是什么导致了这种行为?有没有一种简单的方法可以让方括号不改变这种行为?我搜索了这个网站和文档hyperref,没有找到与这个特定问题相关的内容。我可能错过了什么。

答案1

经过进一步的实验,似乎用和分别替换和可以[解决问题,但我不完全明白为什么,因为没有必要用替换空格。]%5B%5D%20

% !TEX program = lualatexmk
% !TEX encoding = UTF-8 Unicode

\documentclass{article}
\usepackage{hyperref}

\begin{document}
Email: \href{mailto:[email protected]?subject=from documentation}{[email protected]}

Email: \href{mailto:[email protected]?subject=something from documentation}{[email protected]}

Email: \href{mailto:[email protected]?subject=[something] from documentation}{[email protected]}

Email: \href{mailto:[email protected]?subject=%5Bsomething%5D from documentation}{[email protected]}
\end{document}

根据 Ulrike 的评论和链接,这似乎是 Apple 的 PDF 渲染的一个长期问题,这里的解决方案充其量只是一种变通方法。

相关内容