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

Ruby中Base64.encode64为何会在编码字符串末尾添加换行符?

为什么Rails中Base64.encode64会在编码结果末尾添加换行符?

Base64.encode64 遵循 RFC 2045 标准实现,这个标准最初是为邮件传输场景设计的——早期邮件系统对单行文本长度有严格限制(不能超过76个字符),因此该方法会自动给编码后的文本做行分割,每行最多76个字符,并且在每一行(包括最后一行)末尾添加换行符。哪怕原始字符串编码后长度远小于76,它也会默认补上这个换行符。

而你用到的 Base64.strict_encode64 遵循 RFC 4648 的严格规范,它不会做任何自动换行处理,编码结果是连续的纯Base64字符串,没有额外的换行符,刚好适配那些对输入格式要求严格的第三方系统。

代码示例对比

  • 带换行的编码:
Base64.encode64("No way") # output: "Tm8gd2F5\n"
  • 无换行的严格编码:
Base64.strict_encode64("No way") # output: "Tm8gd2F5"

内容的提问来源于stack exchange,提问作者channa ly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:50:21