当前位置:首页 > JavaScript

js 实现 unicode

2026-04-06 12:50:49JavaScript

Unicode 编码与解码

在 JavaScript 中,Unicode 可以通过多种方式处理和转换。以下是常见的 Unicode 操作方法:

字符串直接使用 Unicode 转义序列

JavaScript 字符串支持 Unicode 转义序列,格式为 \uXXXX(4 位十六进制)或 \u{XXXXXX}(1-6 位十六进制):

const str1 = '\u0041'; // "A"
const str2 = '\u{1F600}'; // "😀"

获取字符的 Unicode 码点

使用 charCodeAt() 获取 UTF-16 编码单元(适用于 BMP 字符),或 codePointAt() 获取完整 Unicode 码点:

js 实现 unicode

'😀'.charCodeAt(0); // 返回 55357(高位代理)
'😀'.codePointAt(0); // 返回 128512(完整码点)

从码点生成字符

使用 String.fromCharCode()(适用于 BMP 字符)或 String.fromCodePoint()

String.fromCharCode(65); // "A"
String.fromCodePoint(128512); // "😀"

字符串与 Unicode 编码互转

通过 escape()/unescape()(已弃用)或手动实现编码转换:

js 实现 unicode

// 编码为 Unicode 转义序列
function encodeUnicode(str) {
  return Array.from(str).map(c => 
    `\\u${c.codePointAt(0).toString(16).padStart(4, '0')}`
  ).join('');
}

// 解码 Unicode 转义序列
function decodeUnicode(str) {
  return str.replace(/\\u([\dA-F]{4})/gi, (_, hex) => 
    String.fromCodePoint(parseInt(hex, 16))
  );
}

UTF-8 编码转换

如需处理 UTF-8 字节序列,可使用 TextEncoderTextDecoder API:

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

const utf8Bytes = encoder.encode('你好'); // Uint8Array
const originalStr = decoder.decode(utf8Bytes); // "你好"

正则表达式与 Unicode

使用 u 标志启用 Unicode 模式,正确处理代理对和 Unicode 属性:

/^\u{1F600}$/u.test('😀'); // true
/\p{Emoji}/u.test('👍'); // true(需支持 ES2018)

注意事项

  • BMP(基本多文种平面)字符使用 4 位十六进制表示(\uXXXX),非 BMP 字符需使用 \u{XXXXXX} 或代理对。
  • codePointAt()fromCodePoint() 是处理非 BMP 字符的推荐方法。
  • 浏览器环境下 escape()/unescape() 可能表现不一致,建议避免使用。

标签: jsunicode
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…