Этот конкретный формат не относится к файлам cookie сам по себе, но является одной из распространенных форм специального кодирования, применяемого к файлам cookie. Он генерируется функцией JavaScript escape()
. Это выглядит как кодировка URL, но не совместимо; Авторам JS действительно нужно прекратить его использование.
URI :: Escape :: JavaScript имеет реализацию, которая воспроизводит алгоритм unescape
. Это в основном тот же подход, что и у вас, но он также обрабатывает двузначный шаблон %xx
.
Модули, которые пытаются трактовать JS-escape-кодирование как расширение URL-кодировки, могут сработать при потенциально различной обработке символа +
.
Я сомневаюсь, что какое-либо приложение потратит достаточно времени на их расшифровку, чтобы на самом деле это стоило делать в Си.