首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将二进制数据转换为base64不适用于btoa反转义。

将二进制数据转换为base64不适用于btoa反转义。
EN

Stack Overflow用户
提问于 2020-12-02 10:40:04
回答 2查看 1.9K关注 0票数 0

我是新的反应,并希望显示一个图像下载为二进制数据。我将图像数据从api调用下载到。api调用工作,因为图像显示在邮递员中,没有问题。我还可以将图像数据保存到jpeg文件中,并显示为ok。

在React中,我想做<img src={`data:image/jpeg;base64,${theImage}`} />,为此,我需要将二进制数据转换为base64编码的字符串。当我使用cat image.jpeg|base64 > base64.txt转换下载的jpeg时,得到的字符串在我的React应用程序中工作。

但是当我尝试var theImage = btoa(binarydata)时,我得到了Unhandled Rejection (InvalidCharacterError): Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.

搜索完这个问题后,我尝试使用var theImage = btoa(unescape(encodeURIComponent( binarydata )))和类似的建议解决方案,但由此产生的字符串并不像看起来那样是jpeg的有效base64编码(我尝试了在联机be 64->图像服务中转换的结果,没有显示图像)。我还尝试过其他被提议的解决方案,比如base64-js和js 64库,这些库中的任何一个都创建了一个有效的base64有效映像,可以在我的反应代码中显示出来。

当Base64抛出latin1异常时,如何将jpeg二进制数据转换为有效的latin1图像编码?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65106440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档