Ruby Base64编码的图片不显示

Ruby Base64 encoded picture does not display

本文关键字:显示 Base64 编码 Ruby      更新时间:2023-09-26

我正在尝试在网页中显示Base64编码的SVG图像。使用对图像进行编码

str = Base64.encode64 '<svg> ... </svg>'

并使用显示

<img src="data:image/svg+xml;base64,"+str >

浏览器不显示图片。但是,如果我使用JavaScriptbtoa()函数对字符串进行编码并使用显示它

$("body").append("img").attr("src", "data:image/svg+xml;base64,"+ btoa("<svg> .. </svg>"));

图像被完美地显示。对于相同的输入,Ruby输出和JS输出之间也有一些差异。我还尝试了encode64的严格版本和urlsafe版本。他们两个都不起作用。如何解决此问题?

Ruby的Base64添加新行来呈现一个文本块,而不是一串胡言乱语。您要做的是删除字符串

str = Base64.encode64('<svg>...</svg>').gsub("'n", '')

然后像最初那样把它重新绘制到你的来源中。

<img src="data:image/svg+xml;base64,"+str >