Обычно Base64 - хороший способ, но вы можете использовать только кодовые точки Unicode.
Кодовые точки Unicode идут от 0 до 10FFFF, но вы можете легко и эффективно кодировать 2 с половиной байта в кодовую точку Unicode,В зависимости от ваших требований вы можете сместить все кодовые точки на 128, чтобы у вас был ASCII для границ (и вам не нужно беспокоиться о байте 0, и при этом у вас достаточно кодовых точек для 20-битных двоичных данных (на кодовую точку). [Или, возможно, просто экранируйте 0 как 0x10000]
Это универсально, для Unicode (так универсально, Unicode). Если вы знаете кодировку (например, UTF-8, вы можете выбрать другую кодировку).