vue3 純前端解碼base64亂碼

时间: 2023-07-25 22:32:19 浏览: 52
如果你在 Vue3 中使用 Base64 解码时遇到了乱码问题,可能是因为 Base64 字符串中包含了非 ASCII 字符,导致解码出来的二进制数据出现了问题。 要解决这个问题,可以尝试使用 `TextDecoder` 对解码后的二进制数据进行转换。修改第 3 步中的解码方法如下: ```javascript decodeBase64(base64) { const binary = Base64.atob(base64) const bytes = new Uint8Array(binary.length) for (let i = 0; i < binary.length; i++) { bytes[i] = binary.charCodeAt(i) } const decoder = new TextDecoder('utf-8') return decoder.decode(bytes) } ``` 这里使用了 `TextDecoder` 将二进制数据转换成了 UTF-8 编码的字符串。如果你知道 Base64 字符串的编码方式,也可以相应地修改解码方法中的 `TextDecoder` 参数。 这样,你就可以在 Vue3 中成功解码包含非 ASCII 字符的 Base64 字符串了。
相关问题

vue3 解码base64后预览文件内容

在 Vue3 中解码base64后预览文件内容,可以使用以下步骤: 1. 创建一个方法,用于将base64编码解码成二进制数据。可以使用 `atob()` 方法将base64编码解码成字符串,然后将字符串转换成二进制数据。示例代码如下: ```javascript decodeBase64(base64String) { const binaryString = atob(base64String); const byteArray = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) { byteArray[i] = binaryString.charCodeAt(i); } return byteArray; } ``` 2. 在模板中,使用 `input` 元素选择base64编码的文件,并将文件内容传递给解码方法。示例代码如下: ```html <template> <div> <input type="file" @change="handleFileChange"> <div v-if="decodedFile"> <p>文件名:{{decodedFile.name}}</p> <p>文件类型:{{decodedFile.type}}</p> <p>文件大小:{{decodedFile.size}} 字节</p> <p>文件内容:</p> <pre>{{decodedFile.content}}</pre> </div> </div> </template> <script> export default { data() { return { decodedFile: null }; }, methods: { handleFileChange(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onload = () => { const content = this.decodeBase64(reader.result.split(',')[1]); this.decodedFile = { name: file.name, type: file.type, size: file.size, content: content }; }; reader.readAsDataURL(file); }, decodeBase64(base64String) { const binaryString = atob(base64String); const byteArray = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) { byteArray[i] = binaryString.charCodeAt(i); } return byteArray; } } }; </script> ``` 在上述示例代码中,我们使用 `FileReader` 对象读取选择的文件,并在其 `onload` 方法中调用解码方法将base64编码解码成二进制数据。解码后的二进制数据存储在 `decodedFile.content` 中,可以在模板中显示。

vue3 純前端解碼base64后預覽pdf

要在 Vue3 中前端解码 Base64 并预览 PDF 文件,可以使用以下步骤: 1. 安装 `pdfjs-dist` 和 `base64-js` 依赖: ```bash npm install pdfjs-dist base64-js ``` 2. 在 Vue3 组件中引入依赖: ```javascript import pdfjsLib from 'pdfjs-dist' import Base64 from 'base64-js' ``` 3. 定义一个方法来将 Base64 解码成二进制数据: ```javascript decodeBase64(base64) { const binary = Base64.atob(base64) const array = new Uint8Array(binary.length) for (let i = 0; i < binary.length; i++) { array[i] = binary.charCodeAt(i) } return array } ``` 4. 加载 PDF 文档并渲染: ```javascript loadPdf(doc) { const loadingTask = pdfjsLib.getDocument({ data: this.decodeBase64(doc) }) loadingTask.promise.then(pdf => { pdf.getPage(1).then(page => { const viewport = page.getViewport({ scale: 1.0 }) const canvas = this.$refs.pdfCanvas const context = canvas.getContext('2d') canvas.height = viewport.height canvas.width = viewport.width page.render({ canvasContext: context, viewport: viewport }) }) }) } ``` 其中,`doc` 是 Base64 编码的 PDF 文档,`this.$refs.pdfCanvas` 是用于显示 PDF 的 Canvas 元素。 这样,你就可以在 Vue3 中成功解码 Base64 并预览 PDF 文件了。

相关推荐

最新推荐

recommend-type

vue项目base64字符串转图片的实现代码

主要介绍了vue项目base64字符串转图片的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

Vue前端开发规范整理(推荐)

本文是基于vue官方风格指南整理的关于Vue前端开发规范(推荐),非常不错,具有参考借鉴借鉴价值,需要的朋友可以参考下
recommend-type

VUE 3D轮播图封装实现方法

主要为大家详细介绍了VUE 3D轮播图封装实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

解决vuecli3中img src 的引入问题

主要介绍了解决vuecli3中img src 的引入问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

在Vue中使用highCharts绘制3d饼图的方法

本篇文章主要介绍了在Vue中使用highCharts绘制3d饼图的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。