Почему при копировании неанглийского URL-адреса из адресной строки он кодируется как URL, а не как текст, который я вижу (декодировал)?

571
arieljannai

Когда я копирую ссылку из адресной строки, в которой есть символы, которые обычно должны быть закодированы, скопированная ссылка будет содержать закодированный текст, а не декодированный (это то, что видно визуально).

Но если я отредактирую (и верну) что-то в URL, например добавлю пробел и удалим его, скопированный текст будет декодирован.

Почему это поведение? Есть какая-то причина, или произвольная?

Примечание: из того, что я проверил - это поведение в Chrome и Firefox, но не в Edge (которое будет копировать декодированный текст).

Есть ли способ изменить поведение и всегда копировать (хороший) декодированный URL?
(По крайней мере для Chrome)


Пример:

Просмотр этого адреса будет отображаться https://he.wikipedia.org/wiki/עוגייהв адресной строке, но при копировании будет копировать https://he.wikipedia.org/wiki/%D7%A2%D7%95%D7%92%D7%99%D7%99%D7%94.
Редактирование чего-либо перед копированием изменит это поведение.

enter image description here

2

2 ответа на вопрос

3

Это специально реализованная и очень полезная функция веб-браузеров:

  • После выдачи команды копирования для всего URL-адреса веб-браузер кодирует его в определенную форму. Вы делаете это одним щелчком мыши в адресной строке. Подсказка в том, что вся адресная строка выбрана.
  • Если вы сначала решите выбрать часть URL-адреса (даже если в итоге вы выберете все это), веб-браузер просто скопирует то, что вы видите. Вы делаете это одним щелчком мыши, затем еще одним щелчком (или просто двойным щелчком), затем выбираете то, что хотите.

Существует также часть, которую вы можете не осознавать: при входе https://he.wikipedia.org/wiki/עוגייהвеб-браузер преобразует его в https://he.wikipedia.org/wiki/%D7%A2%D7%95%D7%92%D7%99%D7%99%D7%94фоновом режиме, а затем передает в Интернете.

У всего этого есть причина. Я избавлю вас от деталей и просто дам вам нижнюю строку: закодированный URL-адрес является реальным URL-адресом. «Хороший» URL, как вы говорите, просто упрощает жизнь для вас. Таким образом, последний может работать не во всех веб-приложениях, в то время как первый гарантированно будет работать.

Приложение: Возможно, вы даже не сможете должным образом отправить «хороший» URL-адрес по электронной почте, с помощью мгновенных сообщений или SMS! Это действительно зависит от того, использует ли служба, которую вы используете, и ваш получатель, поддерживающий Unicode. (Gmail, Hotmail, Skype и Telegram в порядке. Я не уверен насчет SMS-услуг Sprint, Verizon или AT & T.)

Спасибо за Ваш ответ! Я на самом деле знаю, что это именно то, что мы видим, и что фактический URL является закодированным - я просто думал о перспективе конечного пользователя и не думал о возможности передать URL приложениям, которые могут его не поддерживать. arieljannai 5 лет назад 0
2
Anaksunaman

Формат закодированного URL-адреса - это форма, фактически используемая приложениями, которые общаются в Интернете. Этот способ по умолчанию копируется из Firefox / Chrome, чтобы, вероятно, гарантировать удобство использования скопированного URL.

Причина, по которой URL «изменяется» при редактировании, почти наверняка заключается в том, что браузер обнаружил различия в строке URL, которые, возможно, потребуется снова закодировать.

Есть ли способ изменить поведение и всегда копировать (хороший) декодированный URL (по крайней мере, для Chrome)?

Fire Fox

Это супер вопрос пользователя есть ответ, который гласит, вы можете установить значение browser.urlbar.decodeURLsOnCopyв Trueсоответствии about:configс Firefox 53+ автоматически копировать не-URL закодированной форму URL. Это сработало для меня, хотя я не тестировал его на последних версиях Firefox.

Хром

Я не нашел никаких внутренних настроек для Chrome, но нашел рекомендацию по переполнению стека для расширения Chrome под названием COPY URL (последнее обновление в феврале 2018 года на момент написания), которое, казалось, копировало ваш примерный URL без кодировки, как объявлено ,

Как небольшое предостережение относительно этого расширения, в то время как ссылки, встроенные в страницы, имеют COPY URLопцию в меню, вызываемом правой кнопкой мыши, URL-адреса «адресной строки» пришлось скопировать, щелкнув левой кнопкой мыши значок расширения COPY URL, расположенный справа от омнибокса (рядом с меню настроек).


Если вы работаете в Windows, вероятно, стоит отметить, что вы можете вставить группу URL-адресов в кодировке URL в Notepad ++, выбрать «Правка» → «Выбрать все» ( Ctrl+ A), а затем (при условии, что у вас есть доступные плагины по умолчанию) использовать «Плагины» → «Инструменты MIME» → «URL» Декодировать, чтобы декодировать все URL-адреса одновременно.


Спасибо! Я изменил поведение в Firefox. Что касается Chrome - расширения кажутся мне немного бесполезными, потому что я уже привык добавлять и удалять пробелы в адресе перед копированием - поэтому нажатие на расширение будет медленнее и менее удобным. Я уже использую этот метод с notepad ++, когда мне нужно много, это здорово :) arieljannai 5 лет назад 0
Лол пожалуйста Кажется, ты здесь далеко впереди. =) Что касается расширения, да, это, вероятно, не так много преимуществ. Немного прискорбно, что Chrome решил так плотно запереться. Anaksunaman 5 лет назад 1

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