Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js string转base64

作者:角落里哭泣   发布日期:2025-02-18   浏览:94

// 将字符串转换为Base64编码的示例代码

function stringToBase64(str) {
    // 使用内置的btoa函数将字符串转换为Base64编码
    // 注意:btoa只能处理ASCII字符,对于包含非ASCII字符的字符串,需要先进行UTF-8编码
    try {
        return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
            return String.fromCharCode('0x' + p1);
        }));
    } catch (err) {
        console.error("Error encoding to Base64:", err);
        return null;
    }
}

// 示例用法
var originalString = "Hello, 世界!";
var base64Encoded = stringToBase64(originalString);
console.log("Base64 Encoded:", base64Encoded);

// 输出结果应该是类似于:
// Base64 Encoded: SGVsbG8sIOS4lueVjA==

解释说明:

  1. btoa 函数:这是浏览器提供的一个内置函数,用于将字符串转换为 Base64 编码。但它只支持 ASCII 字符,因此对于包含非 ASCII 字符(如中文)的字符串,我们需要先进行 UTF-8 编码。
  2. encodeURIComponent:这个函数将字符串中的特殊字符(包括非 ASCII 字符)编码为 URI 组件格式(例如,%E4%B8%AD%E6%96%87),然后再将其转换为 Base64 编码。
  3. 正则表达式替换replace(/%([0-9A-F]{2})/g, ...) 用于将 %xx 格式的编码转换回字符,以便 btoa 可以正确处理。

希望这段代码和解释对你有帮助!

上一篇:js 字符串转时间

下一篇:js concat会改变原数组吗

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js 获取今天年月日

js jsonp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站