Смещение по чарам
Здравствуйте. Мне нужно написать простенькое кодирование ссылки, таким образом, что бы сервер ее кодировал, вставлял в страницу, а жс получал и декодировал.
Для этого я смещал через char каждый символ строки на определенную величину, передавал эту величину в жс, и потом смещал в другую сторону, и я заметил, что при определенных величинах смещения ссылка декодируется неверно. Закодированную ссылку я вставлял в див, а потом с помощью innerHTML получал в переменную. Я подозреваю, что при этом действии происходит какое-то изменение строки. У меня появлялись лишниэ элементы массива (рассматривал строку, как массив). И это касалось одинарной кавычки. Она заменялась на: amp; А если я смещал в другую сторону на сервере, то у меня в некоторых случаях символы обратно неправильно преобразовывались. Подскажите пожалуйста метод решения этой проблемы. |
Цитата:
123;10;230;22; Где каждая циферка это код символя + некое смещение... Т.о. ты не будешь иметь особых проблем с обработкой строки... |
ksa,
А ты не знаешь в чем собственно корень проблемы? За метод спасибо, если с этой проблемой не разберусь, то наверное его использовать буду |
Код в студию)
|
Цитата:
|
Решил, что буду кодировать простым XOR, нашел функцию на жс, написал аналог на php, но возникла такая проблема. Закодированная строка содержит зарезервированные симовлы жс-а, и когда я делаю вот такое:
var str = xor_str('`llh2''bYnYk[jahl&jm'^gjme'k`gol`j]Y\&h`h7h5*0+,).hgkl*0+,).', '8'); То соответственно получаю ошибку синтаксиса. Насколько я понимаю, проблемный символ - это ^ . Есть какая-то фича что бы эти символы не выполняли свои функции? Может писать код в куки, а потом брать в переменную из кук? |
Цитата:
Цитата:
var str = xor_str('`llh2''bYnYk[jahl&jm\'^gjme\'k`gol`j]Y\&h`h7h5*0+,).hgkl*0+,).', '8'); Это не экранированый апостров внутри апострофов... В твоем случае их аш два! :) |
ksa,
а если вмочить по слэшу после каждого символа, а потом в жс-е разбивать на пары, забирать слэш и декодировать? |
Цитата:
Цитата:
alert('123\'45\'6789\'0'.length); Т.ч. "забирать" ничего не нужно. Т.к. слэшей, как символов, в той строке нет. |
обрамил слэшами с помощью addslashes() и заработало, спасибо большое!
|
Часовой пояс GMT +3, время: 12:26. |