uniapp base64编码与解码的使用方法
在uniapp中如何正确使用base64编码与解码功能?我尝试了多种方法但总出现乱码或格式错误,请问有没有完整的示例代码?具体应该引用哪些API,以及在编码解码过程中有哪些注意事项?
2 回复
在uni-app中,使用uni.base64ToArrayBuffer()将Base64字符串转为ArrayBuffer,用uni.arrayBufferToBase64()将ArrayBuffer转回Base64。适用于图片处理等场景。
在 UniApp 中,Base64 编码和解码可以通过 JavaScript 内置方法实现,无需额外安装插件。以下是具体使用方法:
Base64 编码
使用 btoa() 方法将字符串转换为 Base64 编码:
let originalString = 'Hello, UniApp!';
let encodedString = btoa(originalString);
console.log(encodedString); // 输出: "SGVsbG8sIFVuaUFwcCE="
Base64 解码
使用 atob() 方法将 Base64 字符串解码回原始内容:
let base64String = 'SGVsbG8sIFVuaUFwcCE=';
let decodedString = atob(base64String);
console.log(decodedString); // 输出: "Hello, UniApp!"
注意事项
-
中文处理:直接使用
btoa编码中文可能出错,需先进行 UTF-8 转码:function encodeBase64(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode('0x' + p1))); } function decodeBase64(str) { return decodeURIComponent(atob(str).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')); } // 使用示例 let chineseText = '你好UniApp'; let encoded = encodeBase64(chineseText); let decoded = decodeBase64(encoded); -
二进制数据:处理图片等二进制数据时,可通过
uni.getFileSystemManager().readFile()读取文件并设置encoding: 'base64'。
这些方法在 UniApp 的 Vue 页面或 JavaScript 模块中均可直接使用。

