Почему отличается результат кодирования в base64 в windows и Linux?
Алгоритм base64 един и однозначен.
Если строки различаются, значит на вход поступают разные строки. Скорее всего, дело именно в кодировке. Проверяйте входные строки
направьте вывод в обоих случаях в файлы и сравните эти файлы (посмотрите в шестнадцатиричном просмотрщике), делов то.
либо кодировка разная, либо кто-то (винда, полагаю) BOM в начале строки ставит, либо перенос строки присутствует (он разный в разных ОС).