Javascript base64

From: [url]http://www.webtoolkit.info/javascript-base64.html[/url]

/**
*
* Base64 encode / decode
* http://www.webtoolkit.info/
*
**/

var Base64 = {

// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

// public method for encoding
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;

input = Base64._utf8_encode(input);

while (i < input.length) {

chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);

enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;

if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}

output = output +
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

}

return output;
},

// public method for decoding
decode : function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;

input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

while (i < input.length) {

enc1 = this._keyStr.indexOf(input.charAt(i++));
enc2 = this._keyStr.indexOf(input.charAt(i++));
enc3 = this._keyStr.indexOf(input.charAt(i++));
enc4 = this._keyStr.indexOf(input.charAt(i++));

chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;

output = output + String.fromCharCode(chr1);

if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}

}

output = Base64._utf8_decode(output);

return output;

},

// private method for UTF-8 encoding
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";

for (var n = 0; n < string.length; n++) {

var c = string.charCodeAt(n);

if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}

}

return utftext;
},

// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;

while ( i < utftext.length ) {

c = utftext.charCodeAt(i);

if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}

}

return string;
}

}



附注:
在线调试工具网址:[url]http://ostermiller.org/calc/encode.html[/url]
Vivado工程芯片型号更换全流程:从IP更新到生成新bit文件(避坑指南) 本文详细介绍了Vivado工程中更换芯片型号的全流程,包括IP更新、约束文件适配和生成新bit文件的关键步骤。特别针对FPGA开发中常见的兼容性问题提供避坑指南,帮助开发者高效完成芯片迁移,确保设计稳定性和性能优化。 阅读详情

相关推荐

2025-08-19利用opencv检测图片中文字及图片的坐标

该代码实现了图片中中文文本的检测与位置计算功能。主要使用CnOcr库进行OCR识别,结合OpenCV和PIL库处理图像。功能包括:1)检测图片中的中文文本及位置坐标;2)计算每个文本的像素宽度和高度;3)在原图上绘制文本边界框并标注识别结果。代码通过put_chinese_text函数解决中文显示问题,最终输出各文本内容、坐标位置及尺寸信息。适用于需要获取图片中文字精确位置的应用场景。

m0_58149406的博客 395

javascript atob()函数和 btoa()函数-Base64的编码与解码

在 JavaScript 中,有两个函数被分别用来处理解码和编码 base64 字符串: atob() //ASCII to Base64 btoa() //Base64 to ASCII atob() 函数能够解码通过base-64编码的字符串数据。相反地,btoa() 函数能够从二进制数据“字符串”创建一个base-64编码的ASCII字符串。 Encoded size increase...

Lockey23的博客 2万+

智能客服系统知识库构建:长尾问题解决方案全解析

智能客服系统知识库构建:长尾问题解决方案全解析

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 4112

如何使用JavaScript编写Base64代码

我们首先学习了Base64编码的规则,然后编写了一个将原始数据转换成二进制字符串的函数,接着编写了一个Base64编码函数,最后编写了一个Base64解码函数。使用这些函数,我们可以轻松地将任意二进制数据转换为Base64编码字符串,或将Base64编码字符串转换回原始数据。解码函数将从Base64编码中提取出每个字符对应的6位二进制数,然后再将这些二进制数组合成一个二进制字符串。它把三个8位的字节(即24位)转换成四个6位的字节(即24位),这四个6位的字节每个都对应着一种Base64字符。

我点评的博客 1076

论文学习:Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline

title: “Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline” tags: [“论文评述”, “报告”] date: 2019-08-22 author: 叶慧 mathjax: true 论文:Towards Automated Infograph...

xiaoyehahaha的博客 731

CANdb++实战:5步搞定汽车电子DBC文件创建(附信号映射技巧)

本文详细介绍了使用CANdb++高效创建汽车电子DBC文件的五步实战流程,涵盖信号批量创建、报文关联、节点映射等核心技巧。文章重点解析了信号映射中的Motorola/Intel格式选择、多路复用信号处理等高级应用,并提供了从通信矩阵到可测试DBC的完整案例,帮助工程师大幅提升工作效率。

ss78901的博客 944

JavaScript 将字符串进行base64编码

函数仅适用于 ASCII 字符串。如果要编码的字符串包含非 ASCII 字符,需要先进行转换。函数对该字符串进行 Base64 编码,并将结果存储在变量。函数对该字符串进行 Base64 编码,并将结果存储在变量。函数将字符串进行 Base64 编码。在这个例子中,我们的字符串包含中文字符,因此需要使用。函数将其转换为 URI 格式的字符串,然后使用。函数将其转换回原始字符串。在 JavaScript 中,可以使用。在这个例子中,我们先定义一个字符串。函数将编码后的字符串打印出来。

qq_21048115的博客 3312

游戏开发实战:如何用旋转矩阵实现2D角色平滑转向(附Unity代码)

本文深入探讨了在Unity游戏开发中,如何运用旋转矩阵原理实现2D角色的平滑转向。文章从核心理论出发,提供了计算目标旋转、实现平滑插值(Lerp与SmoothDamp)的完整C#代码,并解决了与动画系统、物理引擎协同的常见难题,帮助开发者提升游戏操作手感与视觉流畅度。

weixin_29057237的博客 287

JS中的base64编码和解码(解决中文乱码)

JS中的base64编码和解码(解决中文乱码)

Turbo 4833

YOLOv13涨点改进 | 独家创新、Neck特征融合改进篇 | TGRS 2024 | 引入 EFC增强跨层特征相关创新点,含MSEF(多尺度有效融合模块)二次创新模块,助力遥感目标检测涨点

本文提出EFC(增强跨层特征相关)模块改进YOLOv13模型,显著提升小目标检测性能。EFC通过分组特征聚焦(GFF)和多层特征重建(MFR)增强特征融合效率,在小目标检测任务中平均精度(mAP)提升1.7%,同时减少模型计算量。实验验证EFC在VisDrone等数据集上的有效性,改进后的模型能更好地保留小目标细节信息。还提出二次创新模块MSEF,集成通道和位置注意力机制,进一步优化特征表达。文章详细介绍了模块配置方法和yaml文件修改步骤,为小目标检测任务提供了实用的改进方案。

Ai缝合怪、助力小伙伴高效发论文 325

针对小缺陷目标:在YOLOv11中引入小目标检测层

摘要: 针对YOLOv11在工业检测中漏检微小目标(如焊点气泡)的问题,研究发现深层特征下采样导致小目标信息丢失。通过在YOLOv11中增加P2检测层(4倍下采样)并融合浅层高分辨率特征,可显著提升小目标召回率。关键优化包括:调整模型结构、谨慎设计数据增强策略(减少MixUp、增加小目标粘贴)、重新分配损失权重(提升P2层权重)、优化推理速度(动态分辨率、通道裁剪)。同时强调数据质量的重要性,建议根据具体场景特性(目标尺寸、分布)定制方案,而非盲目调整模型。

as1225120794的博客 366

base64编码和解码的js工具函数

上代码 // 使用 const base64 = new Base64Code() const str = '你好' const en = base64.enCode(str) const de = base64.deCode(en) console.log(en, 'base64编码') // 5L2g5aW9 console.log(de, 'base64解码') // 你好 || 中文也可以进行编码, 里面已经对数据UTF-8转码再base64编码 // base64函数 function Base

weixin_44953227的博客 6456

Allegro如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层

在Allegro做PCB设计的时候,如果需要复制器件的位号到其它层是无法直接实现的,如果直接拷贝器件的位号的话,效果如下。但是Allegro的Cross Copy命令是支持复制任何属性的图形到其它层的,下面以复制器件位号和丝印外框为例说明。同样如果使用Z-copy命令,也是无法Z-copy text的,Finds下方texts是灰色的。如何使用Cross Copy命令快速复制器件的位号和丝印外形其他层。另外cap处可以选择线段的端点是圆形,八角形,或者方形的铜皮。拷贝C1013,出现的是C*

weixin_54787054的博客 2671

JavaScript Base64编码解码的终极解决方案:js-base64全面指南

还在为JavaScript中Base64编码的兼容性问题而烦恼吗?当你需要在浏览器、Node.js或现代模块系统中处理Base64数据时,js-base64库提供了最完整的解决方案。这个纯JavaScript实现的Base64编解码器,解决了传统方法的诸多限制,让数据处理变得简单高效。 ## 为什么选择js-base64? 在Web开发中,Base64编码无处不在:从图片的Data URI到H

gitblog_00134的博客 742

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

js-base64:JavaScript 最全面的 Base64 编码解码终极指南

还在为 JavaScript 中的 Base64 编码问题而头疼吗?js-base64 项目为你提供了最完整、最易用的解决方案!这个纯 JavaScript 实现的 Base64 库支持多环境运行、完整字符编码处理,让 Base64 编码解码变得轻松简单。 ## 为什么选择 js-base64? 在 Web 开发中,Base64 编码无处不在——从图片数据 URI 到 API 认证,从文件上传

gitblog_00320的博客 793

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Base64.js: 简单、高效的JavaScript Base64编码库

Base64.js: 简单、高效的JavaScript Base64编码库 去发现同类优质开源项目:https://gitcode.com/ Base64.js是一个轻量级的JavaScript库,用于对字符串进行Base64编码和解码。它可以方便地在浏览器和Node.js环境中使用,无需任何依赖。 功能与用途 Base64.js提供了以下主要功能: Base64编码:将文本字符串转换为Base...

gitblog_00077的博客 5483

js-base64:JavaScript 中最完整的 Base64 编码解码终极指南

还在为 JavaScript 中的 Base64 编码问题而困扰吗?面对复杂的字符编码、URL 安全处理和二进制数据转换,你是否需要一个既强大又易用的解决方案?js-base64 正是为此而生,它提供了最完整的 Base64 实现,满足现代 JavaScript 生态系统的所有需求。 ## 🎯 项目速览:为什么选择 js-base64? Base64 是一种基于 64 个可打印字符来表示二进

gitblog_00200的博客 1377

base64-js 完全指南:JavaScript Base64 编码解码解决方案

base64-js 是一个纯 JavaScript 实现的 Base64 编码解码库,专门用于处理二进制数据的编码需求。该库提供了三个核心函数,能够在浏览器和 Node.js 环境中无缝运行。 ## 项目概述 base64-js 项目致力于解决 JavaScript 环境中二进制数据的 Base64 编码解码问题。与浏览器内置的文本 Base64 功能不同,base64-js 支持所有类型的二

gitblog_01138的博客 433

JavaScript实现base64编码

原文地址:https://www.cnblogs.com/mofish/archive/2012/02/25/2367858.html Base64编码 base64编码后的字符串有以下组成: 大写字母 小写字母 数字 + = 总共64个,所以称为base64编码 JavaScript实现 base64.js function BASE64() { // private pro...

闲鱼的博客 1万+

js-base64:JavaScript 中最完整的 Base64 编码解码解决方案

还在为 JavaScript 中的 Base64 编码解码问题而烦恼吗?面对复杂的字符编码、URL 安全处理和二进制数据处理,你是否需要一个强大且易用的解决方案?js-base64 项目正是为此而生,它提供了最完整的 Base64 实现,支持现代 JavaScript 生态系统的所有需求。 读完本文,你将获得: - js-base64 的核心功能特性详解 - 多种环境下的安装和使用指南 - 丰富

gitblog_07750的博客 833

如何轻松掌握Base64编码解码?超实用的JavaScript库base64-js完整指南

在Web开发和数据处理中,Base64编码解码是一项基础且常用的技术。**base64-js**作为一款轻量级纯JavaScript库,专为二进制数据的Base64编解码设计,无需依赖浏览器内置功能,兼容Node.js与浏览器环境,让开发者轻松处理各类二进制数据转换需求。 ## ???? 为什么选择base64-js?三大核心优势解析 ### 1️⃣ 纯JS实现,跨平台无缝兼容 不同于浏览器自带的...

gitblog_00889的博客 589

BASE64编码之javascript类库BASE64.js

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同(本类库里面用的

8万+

base64 python兼容js_python和javascript共用的base64加解密代码

最近在OpenEDX中开发了个新的组件,其中需要支持上传功能。由于全都是异步操作,而一些现有的文件上传的库都失效不可用。所以想自己将文件编码成base64,扔到服务端,服务端接收解码保存,以此来实现文件上传的功能。之前在javascript中加解密部分一直喜欢用CryptoJS库。结果发现此库对数据Base64编码后,python的base64库解密不出来。后来更换了js-base64 这个库,还...

weixin_42557656的博客 224

Base64 的 JavaScript 实现 js-base64

base64.js 是 Base64 的 JavaScript 实现。 wiki上给的解释: https://en.wikipedia.org/wiki/Base64 编码规则Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24 位数据,再把这24位数据分成4组,即每组6位。再在每组的的最高位前补两个...

weixin_34356555的博客 205

js-base64:JavaScript 中最完整的 Base64 编码解码终极指南 [特殊字符]

在当今Web开发中,Base64编码解码是不可或缺的核心技术,而**js-base64**正是JavaScript领域最完整、最强大的Base64解决方案。这个轻量级库提供了全面的API支持,让你在浏览器和Node.js环境中都能轻松处理Base64数据转换。无论你是前端开发者还是后端工程师,掌握这个工具都将极大提升你的开发效率! ## 🔥 为什么选择 js-base64? **js-bas

gitblog_00093的博客 438

推荐开源项目:js-base64——JavaScript中的Base64编码解码库

推荐开源项目:js-base64——JavaScript中的Base64编码解码库 js-base64Base64 implementation for JavaScript项目地址:https://gitcode.com/gh_mirrors/js/js-base64 项目简介 在Web开发中,我们经常需要对数据进行Base64编码和解码,例如在传输二进制数据或者安全敏感信息时。是一个由Dan...

gitblog_00079的博客 785
上一篇: linux下配置防火墙
下一篇: Ubuntu下Opera中文输入法问题
pythoner
博客等级 码龄18年 15粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值