Шестнадцатеричное кодирование данных перед сохранением их в cookie, так как шестнадцатеричные символы допустимы для значений cookie. (Base64 не является безопасным, как есть, но вы можете заменить символы + = / на _, например.) Также обратите внимание, что файлы cookie имеют максимальную длину, хотя я забыл, что это ограничение не по назначению.
Если вы пытаетесь сериализовать большое значение, рассмотрите возможность его сохранения в сеансе, чтобы у пользователя не было к нему доступа вообще. Недостатком этого является то, что при этом используется память на сервере, и если у вас есть веб-ферма, вам придется синхронизировать ее между компьютерами.