Получить код ссылки
Внешний вид
Пример
РаботаИнженерныеКонвертеры

Кириллица, mailto и URL-encoded символы

Про использование кириллических символов в URL ссылках
Timur2010-01-30 13:36:42

Для тех, кто еще не понял, этот сайт - онлайновый движок для написания калькуляторов, где для расчета используется javascript, который пишет сам пользователь. Однако понятие калькулятор мы трактуем очень вольно, как некую сущность, куда попадают исходные данные, а на выходе получается осмысленный для автора результат :)
Смотри, например, Как из мухи сделать слона.

Вот и сегодня я решил написать калькулятор, довольно специализированный, но тем кому это надо, в принципе, поможет. Мне было надо.
Речь идет о кодировании кириллических символов для использования в ссылках. Ну например, вы можете написать http://ru.wikipedia.org/wiki/Москва, и при нажатии на ссылку браузер откроет вам соответствующую статью. Однако заметим, что на самом деле браузер обратился по ссылке, напоминающей что-то такое
http://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0, только избавил вас от этих утомительных подробностей.

Эти проценты и буквы и есть URL-encoded форма представления адреса. Впрочем, чего тут распинаться, кому надо и так знает. Изначально ее изобрели для того чтобы передавать безопасно символы, которые имеют значение в контексте URL, чтобы не путать браузер, ну и сервер тоже. Например, / (прямой слеш). Если его надо передать как параметр, а не как часть адреса, то передавать его надо как %2F.

Казалось бы - прекрасно, браузер все делает за нас, в чем, собственно, проблема? А проблема в еще одном виде ссылок, а именно, mailto: Они предназначены не для открытия страницы в браузере, а для открытия почтового клиента по умолчанию. Скажем больше, в них можно передавать параметры письма, такие как "тема" и "тело письма". Вот тут-то и начинается проблема. Если вы напишите mailto:username@someaddress.com?subject=Привет&body=Как жизнь? то ничего хорошего у вас не выйдет (если кодировка страницы, как у меня сейчас, UTF-8)

Потому что почтовый клиент это не поймет. Потому что он использует, скорее всего, кодировку Windows-1251 (Проверял на Outlook и Outlook Express).

Но зато, если вы напишите вот так mailto:username@someaddress.com?subject=%CF%F0%E8%E2%E5%F2&body=%CA%E0%EA%20%E6%E8%E7%ED%FC%3F, то все будет очень хорошо. Под "вы" имеется в виду, конечно, автор веб-страниц.

Ну собственно, это была преамбула, а теперь амбула :)
Ниже калькулятор, который на введенный текст выдает его URL-encoded эквивалент.

Кириллица в URL-encodedCreative Commons Attribution/Share-Alike License 3.0 (Unported)
URL-encoded: 

Комментарии

 Все обсуждения
Защита от спама