Показать сообщение отдельно
  #10  
Старый 06.07.2017, 20:30
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Всё работает.
Код:
{тут объявлена DecodeBase64}
var rkey: string;
	ttext: string;
	i: integer;
begin
	rkey := 'Mozilla/5.0 (Windows NT 6595d22397c0b1998.VO1MmJfamekbMplQO3URqsOY-fp5VDKdVYPfZLAQUIz85hA2Aod_OJ7Vz5cVtSuUXaMoByuHOA3VWwNKP_d_RVXBg34uVCCyvY1D9AbxwDqJ5HjCy91NgAQbjM-k5WIc87a9ad7bee75';
	ttext := 'aFg4TF5eAkBbWlVOXHJbXEFcNlYXDHESBFZMRxZXXEdpVgRVRwMLHAtvc30DfEh4VERfJk5QfxwNIjtmJTYQByp8H1RVBhdheVZzHWBDYwpkFWVsOH0Q';
	ttext := DecodeBase64(ttext);
	for i := 1 to length(ttext) do
        ttext[i] := chr(ord(ttext[i]) xor ord(rkey[((i-1) mod length(rkey)) + 1]));
    WriteLn(ttext);
end.
Вывод:
Цитата:
%7B%22content%22%3A%7B%22currentPage%22%3A%221%22% 2C%22lastUpdate%22%3A%22%D0%9F%D0%BE%
Это формат URL-Encode. Его после придется раскодировать (url decode).
В примере я расшифровал только начало текста, чтобы не писать километровую строку.
Поскольку в онлайн-компиляторе паскаля нету никакого unescape или парсера json, я предварительно сделал unescape javascript'ом и перевел в base64, а в примере использовал раскодирование из base64 (делфи нет под рукой).
В предыдущем сообщении я не просто так писал про
Цитата:
Ну и не забыть, что приходящая строка содержит escape-символы.
Escape-последовательности - это например \u0002 или \r из твоего ответа сервера. Это текстовое представление "символов" (на самом деле просто байтов), которые невозможно ввести с клавиатуры или напечатать. Ты их не раскодируешь, ты даешь эти \u0002 как будто это текст '\u0002', а на самом деле это просто число 2.
Тебе, соответственно, нужно либо найти способ сделать unescape строки ttext в делфи, либо не парить себе мозги и использовать для вытаскивания строки из ответа сервера готовый JSON-парсер, который есть в новых делфях. В прошлом же сообщении я кидал ссылки на документацию про этот JSON-парсер.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием