我正在尝试在网页中显示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的strict和urlsafe版本。他们都没有工作。我该如何解决这个问题?
答案 0 :(得分:2)
Ruby的Base64
添加新行来呈现一个文本块而不是一串乱码你想要做的就是删除字符串
str = Base64.encode64('<svg>...</svg>').gsub("\n", '')
然后就像你原来那样把它重新插入你的来源。
<img src="data:image/svg+xml;base64,"+str >