跳到主内容

Unicode 码点查询

开发者工具

字符 ↔ U+码点 ↔ UTF-8 字节

答案速览

字符 ↔ U+码点 ↔ UTF-8 字节互查:"中" = U+4E2D = E4 B8 AD;emoji 超 U+FFFF 在 JS 中 length 为 2。

中
字符数(码点)3
UTF-8 字节8
UTF-16 单元4
辅助平面字符1
字符码点UTF-8UTF-16HTMLJS
中U+4E2D0xE4 0xB8 0xAD0x4E2D中\u4e2d
AU+00410x410x0041A\u0041
🚀U+1F6800xF0 0x9F 0x9A 0x800xD83D 0xDE80(代理对)🚀\u{1f680}

编码原理

  1. 1码点是抽象编号(如 U+4E2D);UTF-8/UTF-16 是这个编号的字节排布方式。
  2. 2UTF-8:ASCII 1 字节、常用汉字 3 字节、Emoji 4 字节——与 ASCII 完全向后兼容。
  3. 3JS 的 string.length 按 UTF-16 单元计数:"🚀".length === 2。真实字符数请用 [...str].length。
安全:零宽字符(U+200B、U+FEFF)与同形字符(西里尔 а vs 拉丁 a)常被用于钓鱼与暗水印——处理不可信文本时应归一化并剥离。字符串比较前注意 NFC/NFKC 归一化(é 有单码点与组合两种表示)。

这个工具对你有帮助吗?

怎么用

  1. 字符查码点:输入任意字符(汉字、emoji、符号),得 U+码点、十进制、UTF-8 字节、HTML 实体。
  2. 码点查字符:输入 U+4E2D、0x4E2D 或 中 等格式反查字符。
  3. 多字符输入取首字:只解析第一个字符(含 emoji)。
  4. 前端/后端联调:乱码排查时核对码点与字节是否匹配。

核心要点

  • 码点 ≠ 字节:"中"是 1 个码点(U+4E2D),UTF-8 占 3 字节(E4 B8 AD)。
  • emoji 长度陷阱:😀 = U+1F600,超出 U+FFFF,JS 中 "😀".length === 2(UTF-16 代理对),截断字符串会切出乱码。
  • UTF-8 变长:ASCII 1 字节、常用汉字 3 字节、emoji 4 字节——按字节截断必坏字。
  • HTML 实体:中 十进制、中 十六进制,防止特殊字符被解析。

原理与公式

Unicode 与 UTF-8

码点(Code Point):字符的唯一编号,记作 U+XXXX(如"中" = U+4E2D)
UTF-8 变长编码:U+0000–007F → 1 字节;U+0080–07FF → 2 字节;U+0800–FFFF → 3 字节;U+10000 以上 → 4 字节
UTF-16:U+FFFF 以内 1 码元,之外用代理对(2 码元)——所以 "😀".length === 2(JS)
HTML 实体:中(十进制)或 中(十六进制)

示例:"中" → U+4E2D,UTF-8 字节 E4 B8 AD,HTML 中。

常见问题

为什么 MySQL 存 emoji 报错了?
旧 utf8 编码只支持 3 字节字符,emoji 需 4 字节。改用 utf8mb4 编码即可(utf8mb4_0900_ai_ci 排序规则)。
U+FE0F 是什么?
变体选择符 VS16,跟在基础字符后强制以 emoji 样式显示(如 ✈︎ → ✈️)。它本身不可见,但占一个码点。
怎么在 JS 里正确遍历 emoji 字符串?
用 for...of 或 [...str](按码点迭代),不要用 str[i](按 UTF-16 码元,会拆碎代理对)。
乱码"涓"是怎么来的?
典型 GBK/UTF-8 解码错配:UTF-8 字节被按 GBK 解析。先确认真实字节,再用正确编码解码即可恢复。

相关工具

相关指南

来源与更新

码点与 UTF-8 编码规则依据 Unicode 标准(当前 15.x);UTF-16 代理对行为按 ECMAScript 规范说明。

最近更新:

本页公式与内容经一键算团队复核,仅供学习参考,实际业务请以官方口径为准。

内容由一键算编辑团队维护并定期复核,更新与审核流程见编辑规范。

引用本页:一键算. Unicode 码点查询[EB/OL]. https://www.yijiansuan.com/c/dev/unicode

本工具提供的结果仅供参考,不构成任何专业建议,请以官方核算为准。