首页 > 解决方案 > 浏览器重复插入'#10;' 在每个新行的base64字符串中?

问题描述

我想在浏览器上显示已经收到编码为 Base64 的 jpg 图像。1.所以我将jpg图像上传到我的后端。2. 然后我想在浏览器上显示上传的图片。

在 Safari 上它工作正常,我有以下检查:

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

但在所有其他浏览器上,我看不到完全相同的图像,因为其他 base64 标记#10;在 base64 之间重复出现如下:

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

因此,其他浏览器显然会在出现新行的地方插入 a #10;..

我从 Android 智能手机进行上传,并通过以下方式编码为 base64:

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

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

标签: androidgoogle-chromebrowsersafaribase64

解决方案


\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)中查看来自服务器的原始响应,以准确了解服务器发送的内容 - 使用 Inspect Element 可能会在数据被解析/解释后向您显示数据/渲染而不是原始


推荐阅读