当前位置:首页 > 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 码点:

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

从码点生成字符

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

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

字符串与 Unicode 编码互转

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

// 编码为 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 属性:

js 实现 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实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…