Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Странный escape()... (https://javascript.ru/forum/misc/10287-strannyjj-escape.html)

FreeStyler 26.06.2010 15:12

Странный escape()...
 
Наткнулся на код, в котором текст в escape выглядит так:

%20%6e%75%6c%6c%29%20%3f%20%22%22%20%3a%20%28%22%3 b%20%64%6f%6d%61%69%6e%3d%22%20%2b%20%64%6f%6d%61% 69%6e%29%29%20%2b%0d%0a%09%09%28%28%73%65%63%75%72 %65%20%3d%3d%20%74%72%75%65%29%20%3f%20%22%3b%20%7 3%65%63%75%72%65%22%20%3a%20%22%22%29%3b%0d%0a%09% 09%7d%0d%0a%

Когда делаю unescape и потом опять в escape выходит совершенно другой escape, такой:

%20null%29%20%3F%20%22%22%20%3A%20%28%22%3B%20doma in%3D%22%20+%20domain%29%29%20+%0D%0A%09%09%28%28s ecure%20%3D%3D%20true%29%20%3F%20%22%3B%20secure%2 2%20%3A%20%22%22%29%3B%0D%0A%09%09%7D%0D%0A%25

Не пойму как сделали чтобы не было слов null, domain и т.д. а только цифры, кто знает помогите, пожалуйста! :help:

Вот код:

<script>
t ='%20%6e%75%6c%6c%29%20%3f%20%22%22%20%3a%20%28%22%3b%20%64%6f%6d%61%69%6e%3d%22%20%2b%20%64%6f%6d%61%69%6e%29%29%20%2b%0d%0a%09%09%28%28%73%65%63%75%72%65%20%3d%3d%20%74%72%75%65%29%20%3f%20%22%3b%20%73%65%63%75%72%65%22%20%3a%20%22%22%29%3b%0d%0a%09%09%7d%0d%0a%';
document.write('<p>'+t);
t = unescape(t);
document.write('<p>'+t);
t = escape(t);
document.write('<p>'+t);
</script>

B@rmaley.e><e 26.06.2010 15:56

Цитата:

Сообщение от FreeStyler
Не пойму как сделали

Руками. Перебираем символ за символом и записываем их коды в шестнадцатеричном представлении в строку.

FreeStyler 26.06.2010 16:10

B@rmaley.e><e, интересно как получить эти значения, ну допустим %6e = n
а как узнать представление других букв?

B@rmaley.e><e 26.06.2010 16:14

var str = 'null', o = '', i = 0;
for(; i < str.length; i++)
  o += '%' + str.charCodeAt(i).toString(16);
alert(o)

exec 26.06.2010 16:14

alert('n'.charCodeAt().toString(16));

Упс, уже опередили.

FreeStyler 26.06.2010 16:29

B@rmaley.e><e, спасибо большое! Фиг бы когда догадался! :thanks:


Часовой пояс GMT +3, время: 22:08.