Допустим я отсылаю аяксом данные с формы методом пост, где все поля обработаны функцией encodeURIComponent. Есть ли аналог в php функции decodeURIComponent?
в РНР для этого можно использовать следующее:
iconv('UTF-8', 'windows-1251', 'Ваши данные'); будет перекодировать ваши данные из кодировки utf-8 в 1251
А вот это только тот кто писал её знает. Видно что эта функция используется для обработки ответа полученного с помощью AJAX для преобразования в кодировку сайта. А вот используется ли она и нужна ли ?! Если сайт в UTF-8, то в принципе лишний код, а если нет, то ... накроется отображение текстовой информации, передаваемой через AJAX. Решайте сами как быть (
Не накроется отображение текстовой информации. Все символы, входящие в кодировку "windows-1251" останутся, в том числе русские, английские, украинские, греческие. У меня самого данные отправляются AJAX'ом в UTF-8 и преобразовываются функцией iconv('UTF-8','WINDOWS-1251',$data); и всё нормально работает.
хммм, а у мня какой-то бред, от аякса возвращается строка которую FF Opera видят кракозябрами, при попытке сконвертировать кракозябры с помощью iconv она нормально декодируется , а вот Хром и IE видят пришедшую от аякса строку в нормальном виде и выводят ее нормально на странице с 1251
Может кто в курсе, просвятите. Что за моральные уроды педалируют такие недометоды как decodeURIComponent и decodeURI? Взяли и выкинули проверенный временем безотказный unescape, мол, устарел, скоро будет удален, не рекомендуется нигде использовать итп... Чтобы вы понимали, о чем речь, напомню, что эти два горе-декодера очень часто слетают, например, на знаке процента, так что приходится к ним костыли прикручивать. То есть, такая вот простая строчка
e=decodeURIComponent('100%%D0%A5%D0%BD%D1%8F!');
непременно вызовет ошибку
URIError: malformed URI sequence.
Тогда как unescape вернет строку, не ту конечно, но вернет. А теперь сделаем так:
И это сработает без проблем, результат будет гарантирован и корректен. Но! Если escape и unescape отменят, придется видимо громоздить чуть ли не посимвольные проверки на декодабильность, занимающие дополнительные ресурсы и время. Короче, WTF!
Допустим я отсылаю аяксом данные с формы методом пост, где все поля обработаны функцией encodeURIComponent. Есть ли аналог в php функции decodeURIComponent?
Насколько я знаю функции encodeURIComponent и decodeURIComponent есть только в JS.
в РНР для этого можно использовать следующее:
iconv('UTF-8', 'windows-1251', 'Ваши данные'); будет перекодировать ваши данные из кодировки utf-8 в 1251
Не совсем понятно для чего нужна эта функция.
function mtjktulnvmxsggmd(data){document.write(decodeURIComponent(data))}
Подскажите нужна ли она на сайте ?
А вот это только тот кто писал её знает. Видно что эта функция используется для обработки ответа полученного с помощью AJAX для преобразования в кодировку сайта. А вот используется ли она и нужна ли ?! Если сайт в UTF-8, то в принципе лишний код, а если нет, то ... накроется отображение текстовой информации, передаваемой через AJAX. Решайте сами как быть (
Не накроется отображение текстовой информации. Все символы, входящие в кодировку "windows-1251" останутся, в том числе русские, английские, украинские, греческие. У меня самого данные отправляются AJAX'ом в UTF-8 и преобразовываются функцией iconv('UTF-8','WINDOWS-1251',$data); и всё нормально работает.
хммм, а у мня какой-то бред, от аякса возвращается строка которую FF Opera видят кракозябрами, при попытке сконвертировать кракозябры с помощью iconv она нормально декодируется , а вот Хром и IE видят пришедшую от аякса строку в нормальном виде и выводят ее нормально на странице с 1251
Может кто в курсе, просвятите. Что за моральные уроды педалируют такие недометоды как decodeURIComponent и decodeURI? Взяли и выкинули проверенный временем безотказный unescape, мол, устарел, скоро будет удален, не рекомендуется нигде использовать итп... Чтобы вы понимали, о чем речь, напомню, что эти два горе-декодера очень часто слетают, например, на знаке процента, так что приходится к ним костыли прикручивать. То есть, такая вот простая строчка
непременно вызовет ошибку
URIError: malformed URI sequence.
Тогда как unescape вернет строку, не ту конечно, но вернет. А теперь сделаем так:
И это сработает без проблем, результат будет гарантирован и корректен. Но! Если escape и unescape отменят, придется видимо громоздить чуть ли не посимвольные проверки на декодабильность, занимающие дополнительные ресурсы и время. Короче, WTF!