Почему символ хэша Gedit расширяется и интерпретируется неправильно в интернет браузерах?

Я копирую-вставляю Gedit-hash (#) в часть filepath в интернет браузер для чтения PDF файла Неудачно: не найден файл с символом Gedit-hash. Ввод там непосредственно символа хэша с клавиатуры считается корректным. Копирование-хэша из Gedit в Vim показывает Ascii 035 правильно, также проверено на инструменте ASCII здесь. Пример неверной интерпретации пути к файлу в интернет-браузере, где # расширяется до %23 неправильно

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

Сделайте

  1. Скопируйте путь к файлу в Gedit
  2. Скопируйте путь к файлу из Gedit
  3. Вставьте путь к файлу в любой интернет-браузер
  4. Выход: # символ расширен до %23

Методы вставки filepath, которые правильно интерпретируются

  • введите хэш непосредственно в поле интернет браузера

ОС: Debian 8.7
Интернет-браузеры: Google Chrome 58.0.x, Firefox latest

0
13.06.2017, 16:41
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-адресе.

3
28.01.2020, 02:33

Теги

Похожие вопросы