Как отключить URL-кодирование адресной строки при копировании в буфер обмена?
Если ссылка содержит not-ascii символы, то при копировании в буфер обмена (Chrome, FF) она превращается в килобайт нечитаемых символов. Кроме этого, копировать в буфер не то, что было выделено курсором — это уже плохо.
Пример, где это важно — любая статья из русской Википедии. Хочешь ссылку дать, а получается каша.
Приколько. Оказывается я тот же самый ответ запостил, но его удалили как "Другое". Непонятно что "другое", но очевидно что нужно переписывать и переконфигурировать браузеры, инсталлировать плагин или коцать строку которая тебе нужна. Просто скопировать строку, как plain text для поиска человеческому социуму внеземные цивилизации не позволяют. Поэтому самое правильное решение в нём - самое непопулярное. Я удивляюсь вообще как модераторы его пропустили. У них же совести вообще 0, как и остальных землян.
Сам вчера столкнулся с этой проблемой, пока обхожусь тем что копирую по отдельности кусок ru.wikipedia.org/wiki/«Хакеры:_Герои_компьютерной_революции», вставляю в блокнот и копипастю человеческий текст уже из блокнота — жутко неудобно %(
Специально так сдалано, чтобы ссылки не бились. Если отключить инкодинг, а в строке встретится пробел, то ссылка с большой вероятность станет не правильной.
Хром в адресной строке заменяет проблеы на %20 при отображении. Вот это пусть и копирует в буфер.
Кроме того, ссылку с пробелом он тоже прекрасно понимает, как и другие браузеры.
Хром по мимо пробелов так же заменяет и русские символы (как раз это и есть суть вопроса). Да, браузеры нормально воспринимают ссылки с пробелами, если их вставить в адресную строку. Но тут расчет на то, что пользователь отправить ссылку через какую-нибудь программу. А любая программа парсит вставленную ссылку до первого пробела, а это значит, что если вставить ссылку без инкодинга, то она побъется.
Ну если вам очень нужно, вот вам лайфхак — данное преобразование действует только если выделить ссылку целиком. Если выделить все кроме одного символа (первого (Chrome) или последнего (Firefox)), то будет скопировано то, что вы видите. Правда без схемы (http://,ftp://,https://) (Chrome) и не выбранного символа.
Хром по мимо пробелов так же заменяет и русские символы
Нет, хром не заменяет русские символы в адресной строке. Он заменяет их при копировании в буфер обмена, что я считаю совершенно лишним.
А пробелы Хром заменяет уже в адресной строке. Я понимаю, в чем причина такого поведения: любой парсер ссылок считает пробел границей ссылки. Заменять пробел на %20 — это нормально.
В общем, я вижу в адресной строке текст «ru.wikipedia.org/wiki/Заглавная%20страница» (до редиректа) и хочу этот же текст получить в буфере обмена. Про ваш лайфхак я знаю, но считаю его неудобным и ищу настоящее решение проблемы.
Хром заменяет только пробелы, а firefox, к примеру нет. Но я еще раз объясняю, что преобразования необходимы. Если же вы хотите, чтобы ссылки вставлялись красиво в ваш блог, то можно переделать функцию распознания ссылки. Тогда в конечном итоге она будет выглядеть красиво. Можете написать расширение, чтобы он копировал так, как вы хотите по одной кнопке. Лично меня не напрягает передача длинных урлов.
Я продемонстрировал пример с вставкой ссылки. Не везде можно использовать теги, для отображения ссылки. К примеру, вы ссылку можете передать через icq, skype. Клиенты автоматически распознают ссылку и делают так, чтобы пользователь мог перейти по одному клику. Мало того, реализация парсера может быть различной. Например, разработчик может завидомо из маски распознания убрать русские символы. До сих пор некоторые парсеры (например skype) не понимают национальных доменов. Что касается «не кодировать русские символы», так вообще то encode осуществляется по стандарту (если не ошибаюсь www.ietf.org/rfc/rfc1738.txt).
Ответ — никак. Я предложил возможные варианты. Написать скрипт, которые бы правильно выдавал нужно не сложно. Еще раз повторюсь, что это уже кастомная обработка url.