1

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

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

并使用显示

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

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

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

图像完美显示。对于相同的输入,Ruby 输出和 JS 输出之间也存在一些差异。我还尝试了 encode64 的严格和 urlsafe 版本。他们都没有工作。我该如何解决这个问题?

4

1 回答 1

3

RubyBase64添加新行来呈现一段文本而不是一串乱码你想要做的是删除字符串

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

然后就像你最初所做的那样将它重新绘制到你的源代码中。

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

于 2014-03-26T18:58:19.237 回答