当前位置:首页 > JavaScript

js实现cencode

2026-02-01 20:38:57JavaScript

以下是使用JavaScript实现类似C语言中cencode功能的几种方法,主要用于字符串或数据的编码转换:

使用encodeURIComponent进行URL编码

该方法适用于对URL参数部分进行编码,保留特殊字符(如- _ . ! ~ * ' ( )):

js实现cencode

const str = "Hello World!@#";
const encodedStr = encodeURIComponent(str);
console.log(encodedStr); // 输出: "Hello%20World!%40%23"

使用btoa进行Base64编码

适用于二进制数据或简单字符串的Base64编码:

js实现cencode

const text = "Hello Base64";
const encodedData = btoa(text);
console.log(encodedData); // 输出: "SGVsbG8gQmFzZTY0"

自定义十六进制编码

实现类似C语言中逐字符转十六进制的效果:

function hexEncode(str) {
    let result = '';
    for (let i = 0; i < str.length; i++) {
        const hex = str.charCodeAt(i).toString(16);
        result += ('000' + hex).slice(-4); // 补零至4位
    }
    return result;
}
console.log(hexEncode("ABC")); // 输出: "004100420043"

使用TextEncoder进行UTF-8编码

现代浏览器支持的API,可获取UTF-8字节数组:

const encoder = new TextEncoder();
const uint8Array = encoder.encode("你好");
console.log(Array.from(uint8Array)); // 输出: [228, 189, 160, 229, 165, 189]

注意事项

  • URL编码时encodeURI不会编码/?:@&=+$#等完整URL需要的字符,而encodeURIComponent会编码这些字符
  • btoa仅支持Latin1字符集,对中文需先进行URI编码:
    btoa(encodeURIComponent("中文")); // 正确做法

以上方法可根据实际需求选择,分别对应不同的编码场景。

标签: jscencode
分享给朋友:

相关文章

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…