Debian

為什麼 Gedit 的雜湊符號在 Internet 瀏覽器中被錯誤地擴展和解釋?

  • June 13, 2017

我將文件路徑的一部分中的 Gedit-hash ( #) 複製粘貼到 Internet 瀏覽器中以不成功地讀取 PDF 文件:找不到帶有 Gedit-hash 符號的文件。從鍵盤直接輸入雜湊符號被認為是正確的。將 gedit-hash 複製粘貼到 Vim 可以正確顯示 Ascii 035,也在此處的 ASCII 工具上進行了測試。Internet 瀏覽器中錯誤解釋的範例文件路徑,其中#擴展為%23錯誤

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

  1. 將文件路徑複製到 Gedit
  2. 從 Gedit 複製文件路徑
  3. 將文件路徑粘貼到任何 Internet 瀏覽器
  4. 輸出:#符號擴展為%23

插入正確解釋的文件路徑的方法

  • 直接在 Internet 瀏覽器欄位中鍵入 hash

作業系統:Debian 8.7

網際網路瀏覽器:Google Chrome 58.0.x、Firefox 最新

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 中分隔片段。

引用自:https://unix.stackexchange.com/questions/370880