С риском звучать глупо, я готов поспорить, что приведенная выше кодировка является ошибочной реализацией, которая смешивает chars и wchar_ts вместе.
Используя "обычную" base64, строка 'YQA =' декодируется в'a \ x00' и 'YQBhAGEAYQA =' декодируются в 'a \ x00a \ x00a \ x00a \ x00'.
Есть ли шанс, что вы могли бы предоставить еще несколько примеров, чтобы мы могли отменить эту теорию?