为什么 Gedit 的哈希符号在互联网浏览器中被错误地扩展和解释?

为什么 Gedit 的哈希符号在互联网浏览器中被错误地扩展和解释?

#我将文件路径的一部分中的Gedit-hash ( ) 复制粘贴到互联网浏览器中以读取 PDF 文件,但未成功:找不到带有 Gedit-hash 符号的文件。直接从键盘输入哈希符号被认为是正确的。将 gedit-hash 复制粘贴到 Vim 可以正确显示 Ascii 035,也在 ASCII 工具上进行了测试这里。示例文件路径在 Internet 浏览器中被误解,错误地#扩展为%23

/home/masi/Documents/Edition.pdf#page=605

  1. 将文件路径复制到Gedit
  2. 从 Gedit 复制文件路径
  3. 将文件路径粘贴到任何互联网浏览器
  4. 输出:#符号扩展为%23

插入正确解释的文件路径的方法

  • 直接在互联网浏览器字段中输入哈希值

操作系统:Debian 8.7
互联网浏览器:Google Chrome 58.0.x、Firefox 最新版

答案1

UNIX 文件名不是 URL。

您可以看到“#”在 unix 文件名中不被解释,但在 URL 中被解释。

$ ls '/home/masi/Documents/Edition.pdf#page=605'
ls: cannot access '/home/masi/Documents/Edition.pdf#page=605': No such file or directory
$ curl '/home/masi/Documents/Edition.pdf#page=605'
curl: (3) <url> malformed
$ curl 'file:///home/masi/Documents/Edition.pdf#page=605'
curl: (37) Couldn't open file /home/masi/Documents/Edition.pdf

Firefox 正在应用正确的转义,以防止文件名字符#被解释为分隔 URL 中的片段。

相关内容