|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] декодирование в php после javascript:encode |
|
|
[решено] декодирование в php после javascript:encode
|
Пользователь Сообщения: 67 |
Профиль | Сайт | Отправить PM | Цитировать при передаче данных в XMLHTTPRequest из javascript русские символы из кодировки 1251 приходят в php в некоей кодировке, которую называют iso8859-1 (в доках по php), хотя на самом деле русские символы присутствуют только в iso8859-5. может это и одно и то же, однако обратно они приходят в ней же, а нифига не в 1251. iconv и прочие конверторы использовать не имею ни желания ни возможности - на локальной машине их нет, а я добавлять чего-либо не умею и не надо меня этому учить. а на сервере и играться как-то кощунственно и туда тоже надо доставлять дополнительные расширения. потом... возможно ведь и использование пользователями других символов, которые не будут входить уже в iso8859-5. следовательно перед отправкой я делаю строке encode в javascript`е. все символы (русские) приходят в виде %u0... для их переконвертации я написал свой обработчик:
всё бы ничего, но - пропадает символ '+' (плюс) - передается в виде пробела - все-таки хотелось бы нечто универсальное для любого юникода - не только кирилистического - вычислять разницу в кодах символов разных кодировок, я так понял, глупо... этим уменьшится только количество строк php, а не логика зы без encode не могу - всё после символа & пропадает как новая переменная - как при методе get |
|
Отправлено: 17:42, 25-12-2006 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:56, 25-12-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 67
|
Профиль | Сайт | Отправить PM | Цитировать да я пробовал локаль прописывать в .htaccess - не помогло
а куда это засунуть??? в начало скрипта??? или можно непосредственно перед обращением к переменной??? и что делать, если текст пришел уже в виде %u0...??? |
Отправлено: 21:14, 25-12-2006 | #3 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:07, 25-12-2006 | #4 |
Пользователь Сообщения: 67
|
Профиль | Сайт | Отправить PM | Цитировать setlocale после escape не помогает
setlocale вообще не помогает!!! после отправки текста (без escape) АБВГДЕЁЖЗИЙКЛМН приходит АБВГДЕЁЖЗР?ЙКЛМН т.е. опять невесть в чем!!! у меня возникла идея, как это сделать, но не хватает опыта: после escape символы приходят в виде %u0410 - (заглавное А на кирилице) 0410 - это не что иное как шестнадцатеричный код символа т.е. если мы пересчитаем 0410 из шестнадцатеричного в десятичное число, то получим 1040 короче если привести %u0410 к виду А то мы получим не что иное, как нормальную html-сущность символа А на кирилице а если после этого сделать еще и Цитата:
вопрос КАК ЭТО СДЕЛАТЬ на php??? остается открытым вопрос: как передавать плюсы с использованием encode??? |
||
Последний раз редактировалось VeshchiyOleg, 26-12-2006 в 10:32. Причина: нежелательное автоматическое преобразование Отправлено: 10:28, 26-12-2006 | #5 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать VeshchiyOleg а как же rawurldecode()? Есть еще urldecode() но она afaik плюс в пробел декодит..
|
Отправлено: 16:07, 26-12-2006 | #6 |
Пользователь Сообщения: 67
|
Профиль | Сайт | Отправить PM | Цитировать javascript:escape('АБВ') == '%u0410%u0411%u0412'
urldecode('%u0410%u0411%u0412') == '%u0410%u0411%u0412' rawurldecode('%u0410%u0411%u0412') == '%u0410%u0411%u0412' всё не то!!! я тут сделал функцию всё супер с одним но... html_entity_decode не работает как я думал
urldecode('%u0410%u0411%u0412') == 'АБВ' на экране всё классно, но мне надо бы еще с текстом поработать прежде чем выводить что делать дальше??? как перевести это в нормальные буквы??? |
Последний раз редактировалось VeshchiyOleg, 26-12-2006 в 17:28. Причина: нежелательное переформатирование символов Отправлено: 17:27, 26-12-2006 | #7 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать VeshchiyOleg
Цитата:
|
|
Отправлено: 22:42, 26-12-2006 | #8 |
Пользователь Сообщения: 67
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
джаваскриптовский escape приводит не к виду % и следом за ним две шестнадцатеричные цифры, а % потом u и потом ЧЕТЫРЕ шестнадцатеричные цифры!!! а если не преобразовывать, то получается вообще какая-то абракадабра, которая никак не обрабатывается, кроме как заменой двух символов на один (см. первый пост вторую половину скрипта) так что rawurldecode у меня ничего не меняет. ВООБЩЕ!!! я тут стал копать глубже оказывается, эта трабла возникает только при методе POST при GET всё ок (без escape) я использую для ajax`а библиотеку prototype.js v 1.4.0 там при POST отправляются следующие заголовки: X-Requested-With:XMLHttpRequest X-Prototype-Version:Prototype.Version Content-type:application/x-www-form-urlencoded Connection:close потом собсна тело запроса может тут собака порылась??? я уж в контент-тип и кодировку прописывал читал статью http://phpclub.ru/detail/article/http_request интересно, но вроде всё правильно... за исключением того, что имитация POST`а какая-то кривая насчет русских символов |
|
Отправлено: 15:09, 27-12-2006 | #9 |
Deadooshka Сообщения: 2511
|
Профиль | Отправить PM | Цитировать VeshchiyOleg
Цитата:
|
|
Отправлено: 16:35, 27-12-2006 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Как передать в javascript данные массива, полученного из кода на php | vagner_HATE | Вебмастеру | 1 | 18-06-2009 13:51 | |
Проверка данных пользователя (PHP + JavaScript или Ajax) | darksmoke | Вебмастеру | 2 | 15-06-2009 17:28 | |
Ошибка - [решено] Invalid argument to date encode | ПЕПЕЛАЦ13 | Microsoft Windows 2000/XP | 9 | 03-12-2008 15:05 | |
Передача переменной из PHP в JavaScript | rulllesss | Вебмастеру | 1 | 25-07-2005 09:27 | |
Вывод в файл на JavaScript (заголовок исправлен после уточненния у автора) | Surround | Вебмастеру | 8 | 26-07-2004 14:26 |
|