Допустим я отсылаю аяксом данные с формы методом пост, где все поля обработаны функцией 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
Ну все мы знаем что ИЕ - г... , а хром - результат заявления google "у нас будет свой браузер, с блекджеком и шл...". а вообще ошибка у вас - нужно явно задать кодировку ответа с сервера:
$type = "text/xml" //для использования responseXML
// $type = "text/plain" если будет возвращена "простая" строка
// $type = нужный mime-type если пересылаем файлы
header("Content-Type: {$type}; charset=windows-1251");
Может кто в курсе, просвятите. Что за моральные уроды педалируют такие недометоды как decodeURIComponent и decodeURI? Взяли и выкинули проверенный временем безотказный unescape, мол, устарел, скоро будет удален, не рекомендуется нигде использовать итп... Чтобы вы понимали, о чем речь, напомню, что эти два горе-декодера очень часто слетают, например, на знаке процента, так что приходится к ним костыли прикручивать. То есть, такая вот простая строчка
e=decodeURIComponent('100%%D0%A5%D0%BD%D1%8F!');
непременно вызовет ошибку
URIError: malformed URI sequence.
Тогда как unescape вернет строку, не ту конечно, но вернет. А теперь сделаем так:
И это сработает без проблем, результат будет гарантирован и корректен. Но! Если escape и unescape отменят, придется видимо громоздить чуть ли не посимвольные проверки на декодабильность, занимающие дополнительные ресурсы и время. Короче, WTF!
Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены. Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Допустим я отсылаю аяксом данные с формы методом пост, где все поля обработаны функцией 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
Ну все мы знаем что ИЕ - г... , а хром - результат заявления google "у нас будет свой браузер, с блекджеком и шл...". а вообще ошибка у вас - нужно явно задать кодировку ответа с сервера:
Может кто в курсе, просвятите. Что за моральные уроды педалируют такие недометоды как decodeURIComponent и decodeURI? Взяли и выкинули проверенный временем безотказный unescape, мол, устарел, скоро будет удален, не рекомендуется нигде использовать итп... Чтобы вы понимали, о чем речь, напомню, что эти два горе-декодера очень часто слетают, например, на знаке процента, так что приходится к ним костыли прикручивать. То есть, такая вот простая строчка
непременно вызовет ошибку
URIError: malformed URI sequence.
Тогда как unescape вернет строку, не ту конечно, но вернет. А теперь сделаем так:
И это сработает без проблем, результат будет гарантирован и корректен. Но! Если escape и unescape отменят, придется видимо громоздить чуть ли не посимвольные проверки на декодабильность, занимающие дополнительные ресурсы и время. Короче, WTF!
Roksa tg
Roksa pl chełm
Ogłoszenia towarzyskie anonse erotyczne
Anonse erotyczne chojnice
Roxa piła
Well? Why can you release it? Your code is great. I think it can solve the problems.
baldi's basics
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.