当前位置:首页 > 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实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div c…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…