当前位置:首页 > JavaScript

js实现编码

2026-04-06 04:16:14JavaScript

编码实现方法

JavaScript提供了多种编码方式来处理字符串和URL编码需求。以下是常见的编码方法及其实现方式。

URL编码

使用encodeURIComponent对URL参数进行编码,适用于编码查询字符串部分:

const param = '测试&参数';
const encodedParam = encodeURIComponent(param); // 输出 "%E6%B5%8B%E8%AF%95%26%E5%8F%82%E6%95%B0"

使用encodeURI编码完整URL(保留协议和域名特殊字符):

js实现编码

const url = 'https://example.com/测试路径?name=值';
const encodedUrl = encodeURI(url); // 保留:/?&=等符号

Base64编码解码

通过btoaatob实现Base64转换(仅支持ASCII字符):

const text = 'Hello World';
const encoded = btoa(text); // "SGVsbG8gV29ybGQ="
const decoded = atob(encoded); // 还原原始字符串

处理Unicode字符需先转换:

js实现编码

function base64EncodeUnicode(str) {
    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (_, p1) => String.fromCharCode('0x' + p1)));
}

HTML实体编码

使用textContent自动转义或手动替换:

const div = document.createElement('div');
div.textContent = '<script>alert(1)</script>';
const encodedHtml = div.innerHTML; // "&lt;script&gt;alert(1)&lt;/script&gt;"

二进制数据编码

通过TextEncoder处理UTF-8编码:

const encoder = new TextEncoder();
const uint8Array = encoder.encode('你好'); // Uint8Array(6) [228, 189, 160, 229, 165, 189]

十六进制编码

转换为十六进制字符串:

const buffer = new Uint8Array([72, 101, 108, 108, 111]);
const hexString = Array.from(buffer).map(b => b.toString(16).padStart(2, '0')).join(''); // "48656c6c6f"

注意事项

  • URL编码时区分encodeURIComponent(编码所有非字母数字字符)和encodeURI(保留完整URL结构)
  • Base64编码非ASCII内容需先进行URI组件编码
  • 处理二进制数据时注意字节序和编码格式
  • 现代浏览器支持TextEncoder/TextDecoderAPI处理文本编码转换

标签: js
分享给朋友:

相关文章

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js 实现链表

js 实现链表

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

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…