浏览器反复插入“#10;”在每一行的base64字符串中?

时间:2019-01-17 12:38:56

标签: android google-chrome browser safari base64

我想在浏览器上显示已收到编码为Base64的jpg图像。 1.因此,我将jpg图片上传到我的后端。 2.然后,我想在浏览器中显示该上传的图像。

在Safari上它可以正常工作,并且我进行了以下检查:

src="data:image/jpeg;base64,_9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH... 

但是在其他所有浏览器上,由于其他base64标记在base64之间重复出现#10;,因此我看不到相同的图像:

src="data:image/jpeg;base64,_9j_4AAQSkZJRgABAQAAAQABAAD_2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH_2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQE...

因此,其他浏览器显然会在发生新行的地方插入#10;

我从Android Smartphones中获得优势,并通过以下方式编码为base64:

Base64.encodeToString(jpgStream.toByteArray(), Base64.URL_SAFE);

我该如何解决?该后端相关,浏览器甚至是Android客户端?

1 个答案:

答案 0 :(得分:0)

我认为在服务器端将\n编码为
,Safari再次将其删除,而不是其他浏览器将其添加。

此HTML在chrome中对我来说效果很好(将其保存在桌面上名为a.html的文件中并打开):

<html><body><img src="data:image/png;base64, iVBORw0KGgoAAAAN
  SUhEUgAAAAUA
  AAAFCAYAAACNbyblAA
  AAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
  9TXL0Y4OHwAAAABJRU5ErkJggg=="></img></body></html>

我认为您可能需要在问题中添加更多代码,以显示如何检索数据,如何对base64进行数据处理,将其合并到要发送到浏览器的页面中等等

此外,在浏览器开发人员工具或Fiddler之类的Web调试代理中查看服务器的原始响应,以准确了解服务器正在发送的内容-使用Inspect Element解析后可能会向您显示数据/解释/渲染而不是原始