Кириллица, mailto, URL

Кириллица, mailto и URL-encoded символы
Про использование кириллических символов в URL-ссылках.

Речь идет о кодировании кириллических символов для использования в ссылках. Ну например, вы можете написать 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:Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.?subject=Привет&body=Как жизнь? то ничего хорошего у Вас не выйдет (если кодировка страницы, как у меня сейчас, UTF-8).

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

Но зато, если Вы напишите вот так mailto:Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.?subject=%CF%F0%E8%E2%E5%F2&body=%CA%E0%EA%20%E6%E8%E7%ED%FC%3F, то все будет очень хорошо. Под «Вы» имеется в виду, конечно, автор веб-страниц.

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


Печать