как декодировать несколько параметров из url в base64

12
siv1987
На сайте с 02.04.2009
Offline
427
#11

Наверное urlencode...

E2
На сайте с 22.05.2012
Offline
53
#12

siv1987, не подскажите как закодировать тогда это в urlencode

/download.html?link='+fileurl+'&title='+filetitle+'&size='+filesize+'

А потом, получить текст, аналогично как тут:

document.write('<a href='+base64_decode(urlParams['link'])+'>'+base64_decode(urlParams['title'])+'</a>');

А то, я ничего не могу понять в JS, буду благодарен.

siv1987
На сайте с 02.04.2009
Offline
427
#13

Чтото не понятно, а нафига его кодировать если это javascript?

E2
На сайте с 22.05.2012
Offline
53
#14

siv1987, суть такова, мне нужно сделать так, чтобы пользователь скачивал файлы на новой (отдельной странице).

Есть такие данные url, title, size - мне нужно, чтобы я их мог отобразить на новой (отдельной странице).

При этом, мне нужно, чтобы url был закодирован, который ведёт на новую (отдельную страницу).

Вот так я кодировал

 <script type="text/javascript"> 
fileurl = '$FILE_URL$' ;
fileurl = Base64.encode(fileurl);
filetitle = '$ENTRY_TITLE$' ;
filetitle = Base64.encode(filetitle);
filesize = '$FILE_SIZE$' ;
filesize = Base64.encode(filesize);
$('.go-link').html('<a href="/download.htm?link='+fileurl+'&title='+filetitle+'&size='+filesize+'" target="_blank">Скачать</a>');
</script>
siv1987
На сайте с 02.04.2009
Offline
427
#15

fileurl например кодируйте в base64, а там где есть кириллица кодируйте через encodeURIcomponent.

А вообще если кодирование происходит в javascript, то все должно работать нормально и с кириллицей, это в php там разные байты получаются.

siv1987
На сайте с 02.04.2009
Offline
427
#16

Как вариант, если декодируете строку закодированную в php с кириллицей в windows-1251, можно воспользоваться костылем


function fixCyrillic(str){
var ret = '', ch = '';
for(var i=0; i<str.length; i++){
ch = str.charCodeAt(0);
ret += (ch > 128) ? String.fromCharCode(ch+1072-224) : str;
}

return ret;
}

alert(fixCyrillic(atob('base64 string')));
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий