La bibliothèque Base64 intégrée à Ruby ajoute quelques ' \n 's. Je ne parviens pas à en trouver la raison. Pour cet exemple particulier :
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"
El \n sont en dernière et 6ème position à partir de la fin. Le décodeur (Base64.decode64) renvoie l'ancienne chaîne parfaitement. Ce qui est étrange, c'est que ces \n n'ajoutent aucune valeur à la chaîne codée. Lorsque je supprime les nouvelles lignes de la chaîne de sortie, le décodeur la décode à nouveau parfaitement.
irb(main):005:0> Base64.decode64(Base64.encode64(str).gsub("\n", '')) == str
=> true
De plus, j'ai utilisé une autre bibliothèque JS pour produire la sortie encodée en base64 de la même chaîne d'entrée, la sortie ne contient pas les éléments suivants \n 's.
Est-ce un bug ou autre chose ? Quelqu'un a-t-il déjà été confronté à ce problème ?
FYI,
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
0 votes
Même problème bizarre ici