我有以下最小的ruby脚本来测试base64编码
require "base64"
data = "testkjadlskjflkasjfwe08u185u12w3oqew,dmf.smxa"
path = "./example/ruby_data.bin"
encoded = Base64.encode64 data
puts encoded
open(path, "wb") do |file|
file << encoded
end
然而,当我在例如c++, Ruby或Python中读取文件时,我遇到了在字符串末尾有换行符的问题。我想避免这种情况。我该怎么做呢?
换行是Base64.encode64
编码过程的一部分。
encode64(本)
返回
bin
的base64编码版本。此方法符合RFC 2045。每60个编码字符添加换行。require 'base64' Base64.encode64("Now is the time for all good codersnto learn Ruby")
生成:
Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g UnVieQ==
还有Base64.strict_encode64
,它不添加任何换行。
strict_encode64(本)
返回
bin
的base64编码版本。此方法符合RFC 4648。不添加换行。
data = "testkjadlskjflkasjfwe08u185u12w3oqew,dmf.smxa"
Base64.encode64 data
#=> "dGVzdGtqYWRsc2tqZmxrYXNqZndlMDh1MTg1dTEydzNvcWV3LGRtZi5zbXhhn"
Base64.strict_encode64 data
#=> "dGVzdGtqYWRsc2tqZmxrYXNqZndlMDh1MTg1dTEydzNvcWV3LGRtZi5zbXhh"
将换行符从编码字符串中删除后,它也不会写入文件。