base64转换方法uniapp
Base64 转换方法(UniApp)
在 UniApp 中实现 Base64 编码和解码可以通过原生 JavaScript 方法或第三方库实现。以下是几种常用方法:
使用原生 JavaScript 方法
UniApp 支持 JavaScript 的 btoa() 和 atob() 方法,分别用于 Base64 编码和解码字符串。
// Base64 编码
const originalString = 'Hello, UniApp!';
const encodedString = btoa(originalString);
console.log(encodedString); // 输出: SGVsbG8sIFVuaUFwcCE=
// Base64 解码
const decodedString = atob(encodedString);
console.log(decodedString); // 输出: Hello, UniApp!
处理中文字符btoa() 和 atob() 对中文字符支持有限,需先对字符串进行 URI 编码处理:
// 编码中文字符
const chineseString = '你好,UniApp';
const encodedChinese = btoa(encodeURIComponent(chineseString));
console.log(encodedChinese); // 输出: JUU0JUJEJUEwJUU1JUE1JUJEJUVGJUJDJThDVVVuaUFwcA==
// 解码中文字符
const decodedChinese = decodeURIComponent(atob(encodedChinese));
console.log(decodedChinese); // 输出: 你好,UniApp
使用第三方库
若需更复杂的场景(如二进制数据转换),可引入 base64-js 或 buffer 库:
-
安装库:
npm install base64-js -
在 UniApp 中使用:
import { toByteArray, fromByteArray } from 'base64-js';
// 编码 const bytes = new TextEncoder().encode('UniApp Data'); const base64Str = fromByteArray(bytes); console.log(base64Str);
// 解码 const decodedBytes = toByteArray(base64Str); const text = new TextDecoder().decode(decodedBytes); console.log(text);
图片与 Base64 互转
在 UniApp 中,可通过 `uni.chooseImage` 和 `uni.getFileSystemManager()` 实现图片与 Base64 的转换:
```javascript
// 选择图片并转换为 Base64
uni.chooseImage({
success: (res) => {
const tempFile = res.tempFilePaths[0];
const fs = uni.getFileSystemManager();
fs.readFile({
filePath: tempFile,
encoding: 'base64',
success: (data) => {
console.log(data.data); // 输出 Base64 字符串
}
});
}
});
注意事项
- 原生方法
btoa()和atob()仅适用于浏览器环境,在部分小程序平台可能需使用 polyfill。 - 处理大文件时建议分块操作以避免内存问题。
- 跨平台开发时需测试目标平台的兼容性。







