urlencode() в Javascript или unescape() в PHP

  • Автор темы webbolt
  • Дата начала

webbolt

Guest
urlencode() в Javascript или unescape() в PHP

господа, хотел бы вернуться к сабжу. Задача прежняя: как раскодировать в PHP данные закодированные функцией escape() Javascript или как научить Javascript кодировать данные аналогично функции urlencode() PHP. Нарыл несколько вариантов (первый , второй ) но ничего верно так и не заработало...
Никто не пробовал решить проблему?
 

rotoZOOM

ACM maniac
Пробовал.
Пришлось кодировать ручками.
Писать свою функцию ... мэпить символы.
 

Фанат

oncle terrible
Команда форума
парниша, а ты не охамел - по три раза свои вопросы флудить?
 

webbolt

Guest
сорри народ за двойной постинг. Был рваный пинг и когда отсылал первый раз браузер сказал что не может отобразить страницу.

rotoZOOM
брр... ужас.. неужели надо тупо забить массив со значениями unicode кодов и менять полученную строку посимвольно регулярными выражениями???
 

rotoZOOM

ACM maniac
webbolt ну я не регулярными выражениями менял.
Если ты знаешь способ получше - предложи.
 

webbolt

Guest
в принципе есть один метод обойти escape... надо яваскриптом создать форму, поля и сделать для нее submit с action'ом в тот php скрипт куда надо это дело передать....
вот только в моем случае это не прокатывает...
мне надо показать картинку генерящуюся из php изменяя innerHTML слоя

-~{}~ 08.03.05 19:04:

Я очень надеюсь что есть гораздо более элегантное решение этой задачи чем то, что придумал я. Громоздко зато работает:

function unescape($s) {
$js_rus_unicode['%u0451']='¸';
$js_rus_unicode['%u0439']='é';
$js_rus_unicode['%u0446']='ö';
$js_rus_unicode['%u0443']='ó';
$js_rus_unicode['%u043A']='ê';
$js_rus_unicode['%u0435']='å';
$js_rus_unicode['%u043D']='í';
$js_rus_unicode['%u0433']='ã';
$js_rus_unicode['%u0448']='ø';
$js_rus_unicode['%u0449']='ù';
$js_rus_unicode['%u0437']='ç';
$js_rus_unicode['%u0445']='õ';
$js_rus_unicode['%u044A']='ú';
$js_rus_unicode['%u0444']='ô';
$js_rus_unicode['%u044B']='û';
$js_rus_unicode['%u0432']='â';
$js_rus_unicode['%u0430']='à';
$js_rus_unicode['%u043F']='ï';
$js_rus_unicode['%u0440']='ð';
$js_rus_unicode['%u043E']='î';
$js_rus_unicode['%u043B']='ë';
$js_rus_unicode['%u0434']='ä';
$js_rus_unicode['%u0436']='æ';
$js_rus_unicode['%u044D']='ý';
$js_rus_unicode['%u044F']='ÿ';
$js_rus_unicode['%u0447']='÷';
$js_rus_unicode['%u0441']='ñ';
$js_rus_unicode['%u043C']='ì';
$js_rus_unicode['%u0438']='è';
$js_rus_unicode['%u0442']='ò';
$js_rus_unicode['%u044C']='ü';
$js_rus_unicode['%u0431']='á';
$js_rus_unicode['%u044E']='þ';
$js_rus_unicode['%u0401']='¨';
$js_rus_unicode['%u0419']='É';
$js_rus_unicode['%u0426']='Ö';
$js_rus_unicode['%u0423']='Ó';
$js_rus_unicode['%u041A']='Ê';
$js_rus_unicode['%u0415']='Å';
$js_rus_unicode['%u041D']='Í';
$js_rus_unicode['%u0413']='Ã';
$js_rus_unicode['%u0428']='Ø';
$js_rus_unicode['%u0429']='Ù';
$js_rus_unicode['%u0417']='Ç';
$js_rus_unicode['%u0425']='Õ';
$js_rus_unicode['%u042A']='Ú';
$js_rus_unicode['%u0424']='Ô';
$js_rus_unicode['%u042B']='Û';
$js_rus_unicode['%u0412']='Â';
$js_rus_unicode['%u0410']='À';
$js_rus_unicode['%u041F']='Ï';
$js_rus_unicode['%u0420']='Ð';
$js_rus_unicode['%u041E']='Î';
$js_rus_unicode['%u041B']='Ë';
$js_rus_unicode['%u0414']='Ä';
$js_rus_unicode['%u0416']='Æ';
$js_rus_unicode['%u042D']='Ý';
$js_rus_unicode['%u042F']='ß';
$js_rus_unicode['%u0427']='×';
$js_rus_unicode['%u0421']='Ñ';
$js_rus_unicode['%u041C']='Ì';
$js_rus_unicode['%u0418']='È';
$js_rus_unicode['%u0422']='Ò';
$js_rus_unicode['%u042C']='Ü';
$js_rus_unicode['%u0411']='Á';
$js_rus_unicode['%u042E']='Þ';
$js_rus_unicode['%u2116']='¹';
foreach ($js_rus_unicode as $k=>$v) {
$s=str_replace($k,$v,$s);
}
$s=urldecode($s);
return $s;
}

-~{}~ 08.03.05 19:08:

типа в значениях массива должны быть русские буквы.... вот только почему то при отслыке они в то что вы видите сейчас преобразовались....
 

webbolt

Guest
PHP:
function unescape($s) {
	$js_rus_unicode['%u0451']='ё';
	$js_rus_unicode['%u0439']='й';
	$js_rus_unicode['%u0446']='ц';
	$js_rus_unicode['%u0443']='у';
	$js_rus_unicode['%u043A']='к';
	$js_rus_unicode['%u0435']='е';
	$js_rus_unicode['%u043D']='н';
	$js_rus_unicode['%u0433']='г';
	$js_rus_unicode['%u0448']='ш';
	$js_rus_unicode['%u0449']='щ';
	$js_rus_unicode['%u0437']='з';
	$js_rus_unicode['%u0445']='х';
	$js_rus_unicode['%u044A']='ъ';
	$js_rus_unicode['%u0444']='ф';
	$js_rus_unicode['%u044B']='ы';
	$js_rus_unicode['%u0432']='в';
	$js_rus_unicode['%u0430']='а';
	$js_rus_unicode['%u043F']='п';
	$js_rus_unicode['%u0440']='р';
	$js_rus_unicode['%u043E']='о';
	$js_rus_unicode['%u043B']='л';
	$js_rus_unicode['%u0434']='д';
	$js_rus_unicode['%u0436']='ж';
	$js_rus_unicode['%u044D']='э';
	$js_rus_unicode['%u044F']='я';
	$js_rus_unicode['%u0447']='ч';
	$js_rus_unicode['%u0441']='с';
	$js_rus_unicode['%u043C']='м';
	$js_rus_unicode['%u0438']='и';
	$js_rus_unicode['%u0442']='т';
	$js_rus_unicode['%u044C']='ь';
	$js_rus_unicode['%u0431']='б';
	$js_rus_unicode['%u044E']='ю';
	$js_rus_unicode['%u0401']='Ё';
	$js_rus_unicode['%u0419']='Й';
	$js_rus_unicode['%u0426']='Ц';
	$js_rus_unicode['%u0423']='У';
	$js_rus_unicode['%u041A']='К';
	$js_rus_unicode['%u0415']='Е';
	$js_rus_unicode['%u041D']='Н';
	$js_rus_unicode['%u0413']='Г';
	$js_rus_unicode['%u0428']='Ш';
	$js_rus_unicode['%u0429']='Щ';
	$js_rus_unicode['%u0417']='З';
	$js_rus_unicode['%u0425']='Х';
	$js_rus_unicode['%u042A']='Ъ';
	$js_rus_unicode['%u0424']='Ф';
	$js_rus_unicode['%u042B']='Ы';
	$js_rus_unicode['%u0412']='В';
	$js_rus_unicode['%u0410']='А';
	$js_rus_unicode['%u041F']='П';
	$js_rus_unicode['%u0420']='Р';
	$js_rus_unicode['%u041E']='О';
	$js_rus_unicode['%u041B']='Л';
	$js_rus_unicode['%u0414']='Д';
	$js_rus_unicode['%u0416']='Ж';
	$js_rus_unicode['%u042D']='Э';
	$js_rus_unicode['%u042F']='Я';
	$js_rus_unicode['%u0427']='Ч';
	$js_rus_unicode['%u0421']='С';
	$js_rus_unicode['%u041C']='М';
	$js_rus_unicode['%u0418']='И';
	$js_rus_unicode['%u0422']='Т';
	$js_rus_unicode['%u042C']='Ь';
	$js_rus_unicode['%u0411']='Б';
	$js_rus_unicode['%u042E']='Ю';
	$js_rus_unicode['%u2116']='№';
	foreach ($js_rus_unicode as $k=>$v) {
		$s=str_replace($k,$v,$s);
	}
	$s=urldecode($s);
	return $s;
}
-~{}~ 08.03.05 19:19:

Фанат
да я знаю )))
согласен что "кто был туп как дерево, родится баобабом и будет баобабом тыщу лет пока помрет" (Высоцкий).
Зато это первый пример действительно рабочего кода. Все что я до этого находил не работали... А проект то сдавать надо )))

-~{}~ 08.03.05 19:49:

я в этих кодировках ни бум бум... это я про принципы кодирования символов...
И вообще Кирилла и Мефодия надо еще к ответу призвать за их креатифф... прям не могли обойтись латинским алфавитом... в итоге народ парится и все равно пишет транслитом...
 
Сверху