2

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

Но если я отредактирую (и верну) что-то в 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 .
Редактирование чего-либо перед копированием изменит это поведение.

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.)

2

Формат закодированного 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-адреса одновременно.


Всё ещё ищете ответ? Посмотрите другие вопросы с метками .