Edit: Since I wrote this answer Base64.strict_encode64()
was added, which does not add newlines.
The docs are somewhat confusing, the b64encode
method is supposed to add a newline for every 60th character, and the example for the encode64
method is actually using the b64encode
method.
It seems the pack("m")
method for the Array class used by encode64
also adds the newlines. I would consider it a design bug that this is not optional.
You could either remove the newlines yourself, or if you’re using rails, there’s ActiveSupport::CoreExtensions::Base64::Encoding with the encode64s
method.