base64转换方法uniapp
Base64 编码与解码方法(UniApp)
在 UniApp 中实现 Base64 的编码和解码可以通过以下方法实现:
1. 使用 JavaScript 原生方法
JavaScript 提供了 btoa() 和 atob() 函数用于 Base64 编码和解码:
// Base64 编码
const encodedData = btoa('Hello World');
console.log(encodedData); // "SGVsbG8gV29ybGQ="
// Base64 解码
const decodedData = atob('SGVsbG8gV29ybGQ=');
console.log(decodedData); // "Hello World"
注意:btoa() 和 atob() 仅支持 ASCII 字符,对中文等 Unicode 字符需要先进行 URI 编码。
2. 处理 Unicode 字符

对于包含中文等 Unicode 字符的字符串,可以使用以下方法:
// Base64 编码(支持中文)
function base64Encode(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
(match, p1) => String.fromCharCode('0x' + p1)));
}
// Base64 解码(支持中文)
function base64Decode(str) {
return decodeURIComponent(atob(str).split('').map(
c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
}
// 使用示例
const chineseEncoded = base64Encode('你好');
console.log(chineseEncoded); // "JUU0JUJEJUEwJUU1JUE1JUJE"
const chineseDecoded = base64Decode('JUU0JUJEJUEwJUU1JUE1JUJE');
console.log(chineseDecoded); // "你好"
3. 使用第三方库
可以引入第三方 Base64 库如 js-base64:

// 安装
npm install js-base64
// 使用
import { Base64 } from 'js-base64';
const encoded = Base64.encode('Hello World');
const decoded = Base64.decode('SGVsbG8gV29ybGQ=');
4. 图片转 Base64(UniApp 专用)
在 UniApp 中将图片转换为 Base64:
uni.chooseImage({
success: (res) => {
uni.getFileSystemManager().readFile({
filePath: res.tempFilePaths[0],
encoding: 'base64',
success: (fileRes) => {
console.log(fileRes.data); // 输出 Base64 字符串
}
});
}
});
注意事项
- 小程序环境可能对原生
btoa()/atob()支持不完全,建议使用第三方库或自定义实现 - 大文件 Base64 转换可能影响性能,需谨慎处理
- 图片 Base64 字符串通常较大,建议仅用于小图或必要场景
以上方法涵盖了 UniApp 中常见的 Base64 转换需求,开发者可根据具体场景选择适合的实现方式。





