Javascript.RU

decodeURIComponent

Синтаксис

uri = decodeURIComponent(encodedURIComponent)

Аргументы

encodedURIComponent
URI, закодированный при помощи encodeURIComponent

Описание, примеры

Заменяет каждую escape-последовательность в закодированном URI символом, который она представляет.

Не раскодирует escape-последовательности, которые не могли быть созданы encodeURIComponent.

См. также


Автор: Гость (не зарегистрирован), дата: 28 июня, 2010 - 11:57
#permalink

Допустим я отсылаю аяксом данные с формы методом пост, где все поля обработаны функцией encodeURIComponent. Есть ли аналог в php функции decodeURIComponent?


Автор: Vulkan, дата: 29 июня, 2010 - 09:19
#permalink

Насколько я знаю функции encodeURIComponent и decodeURIComponent есть только в JS.


Автор: Александр Девелопер (не зарегистрирован), дата: 21 октября, 2010 - 12:03
#permalink

в РНР для этого можно использовать следующее:
iconv('UTF-8', 'windows-1251', 'Ваши данные'); будет перекодировать ваши данные из кодировки utf-8 в 1251


Автор: кино (не зарегистрирован), дата: 21 октября, 2010 - 10:16
#permalink

Не совсем понятно для чего нужна эта функция.
function mtjktulnvmxsggmd(data){document.write(decodeURIComponent(data))}

Подскажите нужна ли она на сайте ?


Автор: Александр Девелопер (не зарегистрирован), дата: 21 октября, 2010 - 12:08
#permalink

А вот это только тот кто писал её знает. Видно что эта функция используется для обработки ответа полученного с помощью AJAX для преобразования в кодировку сайта. А вот используется ли она и нужна ли ?! Если сайт в UTF-8, то в принципе лишний код, а если нет, то ... накроется отображение текстовой информации, передаваемой через AJAX. Решайте сами как быть Sad(


Автор: Webcher (не зарегистрирован), дата: 25 декабря, 2010 - 09:40
#permalink

Не накроется отображение текстовой информации. Все символы, входящие в кодировку "windows-1251" останутся, в том числе русские, английские, украинские, греческие. У меня самого данные отправляются AJAX'ом в UTF-8 и преобразовываются функцией iconv('UTF-8','WINDOWS-1251',$data); и всё нормально работает.


Автор: Гость (не зарегистрирован), дата: 27 февраля, 2012 - 12:53
#permalink

хммм, а у мня какой-то бред, от аякса возвращается строка которую FF Opera видят кракозябрами, при попытке сконвертировать кракозябры с помощью iconv она нормально декодируется , а вот Хром и IE видят пришедшую от аякса строку в нормальном виде и выводят ее нормально на странице с 1251


Автор: allergencore, дата: 28 февраля, 2012 - 17:52
#permalink

Ну все мы знаем что ИЕ - г... , а хром - результат заявления google "у нас будет свой браузер, с блекджеком и шл...". а вообще ошибка у вас - нужно явно задать кодировку ответа с сервера:

$type = "text/xml" //для использования responseXML
// $type = "text/plain" если будет возвращена "простая" строка
// $type = нужный mime-type если пересылаем файлы
header("Content-Type: {$type}; charset=windows-1251");

Автор: unescape (не зарегистрирован), дата: 29 декабря, 2016 - 21:55
#permalink

Может кто в курсе, просвятите. Что за моральные уроды педалируют такие недометоды как decodeURIComponent и decodeURI? Взяли и выкинули проверенный временем безотказный unescape, мол, устарел, скоро будет удален, не рекомендуется нигде использовать итп... Чтобы вы понимали, о чем речь, напомню, что эти два горе-декодера очень часто слетают, например, на знаке процента, так что приходится к ним костыли прикручивать. То есть, такая вот простая строчка

e=decodeURIComponent('100%%D0%A5%D0%BD%D1%8F!');

непременно вызовет ошибку
URIError: malformed URI sequence.
Тогда как unescape вернет строку, не ту конечно, но вернет. А теперь сделаем так:

e=decodeURIComponent(
escape(unescape('100%%D0%A5%D0%BD%D1%8F!'))
);

И это сработает без проблем, результат будет гарантирован и корректен. Но! Если escape и unescape отменят, придется видимо громоздить чуть ли не посимвольные проверки на декодабильность, занимающие дополнительные ресурсы и время. Короче, WTF!


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
10 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum