You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免Ruby中Base64编码内容写入文件时末尾多出换行符

Ruby标准库中Base64.encode64方法默认遵循RFC 2045规范,会每60个字符插入一个换行符,且编码结果末尾会自动追加换行,这就是你读取文件时出现多余换行的原因。

解决方案

方案1:使用strict_encode64(推荐)

strict_encode64是Base64模块提供的无换行编码方法,输出结果完全不含换行符,符合RFC 4648规范,适配绝大多数不需要换行分隔的存储、接口传输场景。
修改后的代码如下:

require "base64"

data = "testkjadlskjflkasjfwe08u185u12w3oqew,dmf.smxa"
path = "./example/ruby_data.bin"

# 替换encode64为strict_encode64
encoded = Base64.strict_encode64 data

puts encoded
open(path, "wb") do |file|
  file << encoded
end

方案2:手动移除所有换行符

如果业务场景要求必须使用encode64,可以通过字符串方法移除编码结果中的换行:

# 方式1:移除所有换行(包括每60字符的中间换行和末尾换行)
encoded = Base64.encode64(data).gsub("\n", '')

# 方式2:仅移除末尾换行(如果允许中间的每60字符换行可使用该方案)
encoded = Base64.encode64(data).chomp

处理后的编码结果写入文件后,用其他语言读取就不会出现多余换行的问题。

内容的提问来源于stack exchange,提问作者Lars Kakavandi-Nielsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:06:00