La biblioteca Base64 incorporada en Ruby está agregando algunos '\ n's. No puedo encontrar la razón. Para este ejemplo especial:
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'base64'
=> true
irb(main):003:0> str = "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
=> "1110--ad6ca0b06e1fbeb7e6518a0418a73a6e04a67054"
irb(main):004:0> Base64.encode64(str)
=> "MTExMC0tYWQ2Y2EwYjA2ZTFmYmViN2U2NTE4YTA0MThhNzNhNmUwNGE2NzA1\nNA==\n"
Los \ n están en la última y sexta posición desde el final. El decodificador (Base64.decode64) devuelve la cadena antigua perfectamente. Lo extraño es que estos \ n no agregan ningún valor a la cadena codificada. Cuando elimino las líneas nuevas de la cadena de salida, el decodificador la decodifica nuevamente perfectamente.
irb(main):005:0> Base64.decode64(Base64.encode64(str).gsub("\n", '')) == str
=> true
Más de esto, usé otra biblioteca JS para producir la salida codificada en base64 de la misma cadena de entrada, la salida viene sin los \ n.
¿Es esto un error o algo más? ¿Alguien ha enfrentado este problema antes?
FYI
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]