当前位置:首页 > JavaScript

js实现转码

2026-04-05 17:11:17JavaScript

使用 encodeURIComponentdecodeURIComponent

encodeURIComponent 用于对 URI 组件进行编码,适用于 URL 参数部分。decodeURIComponent 用于解码。

const originalText = "Hello, 世界!";
const encodedText = encodeURIComponent(originalText); // "Hello%2C%20%E4%B8%96%E7%95%8C%21"
const decodedText = decodeURIComponent(encodedText); // "Hello, 世界!"

使用 btoaatob(Base64)

btoa 将字符串编码为 Base64,atob 解码 Base64 字符串。注意:仅支持 ASCII 字符,非 ASCII 字符需先处理。

js实现转码

const text = "Hello, world!";
const encoded = btoa(text); // "SGVsbG8sIHdvcmxkIQ=="
const decoded = atob(encoded); // "Hello, world!"

// 处理非 ASCII 字符
const utf8Text = "你好";
const encodedUtf8 = btoa(encodeURIComponent(utf8Text)); // "JUU0JUJEJUEwJUU1JUE1JUJE"
const decodedUtf8 = decodeURIComponent(atob(encodedUtf8)); // "你好"

使用 TextEncoderTextDecoder

处理 UTF-8 编码和解码,适用于现代浏览器。

js实现转码

const encoder = new TextEncoder();
const decoder = new TextDecoder();

const text = "Hello, 世界!";
const encodedArray = encoder.encode(text); // Uint8Array
const decodedText = decoder.decode(encodedArray); // "Hello, 世界!"

处理 URL 编码的哈希或路径

encodeURIdecodeURI 用于完整 URL 编码,不编码特殊字符(如 /, :)。

const url = "https://example.com/路径?q=查询";
const encodedUrl = encodeURI(url); // "https://example.com/%E8%B7%AF%E5%BE%84?q=%E6%9F%A5%E8%AF%A2"
const decodedUrl = decodeURI(encodedUrl); // 原始 URL

处理二进制数据(如 ArrayBuffer)

通过 Uint8ArrayString.fromCharCode 转换二进制数据。

// 字符串转 ArrayBuffer
function stringToArrayBuffer(str) {
  const encoder = new TextEncoder();
  return encoder.encode(str).buffer;
}

// ArrayBuffer 转字符串
function arrayBufferToString(buffer) {
  const decoder = new TextDecoder();
  return decoder.decode(new Uint8Array(buffer));
}

const buffer = stringToArrayBuffer("ABC");
const str = arrayBufferToString(buffer); // "ABC"

注意事项

  • encodeURIComponent 编码范围更广,适合 URL 参数。
  • Base64 编码可能增加数据体积,但适合二进制数据或简单加密。
  • 非 ASCII 字符需结合 encodeURIComponent 和 Base64 处理。
  • 现代浏览器推荐使用 TextEncoder/TextDecoder 处理 UTF-8。

标签: js
分享给朋友:

相关文章

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…