无需登录 数据私有 本地保存

Unicode编码转换工具 - 字符与码点互转

17
0
0
0

Unicode 编码转换工具

字符与码点互相转换 · 支持多种编码格式 · 实时解析

字符 → 码点 输入文本,获取Unicode编码
分隔符:
转换结果
等待输入...
字符数:0 UTF-8字节:0 码点数:0
字符详情
码点 → 字符 输入码点,还原为字符
转换结果
等待输入...
常见问题与知识点

Unicode(统一码)是国际通用的字符编码标准,旨在为世界上所有文字系统的每个字符分配一个唯一的数字编码(称为码点)。Unicode目前收录了超过14万个字符,涵盖中文、英文、阿拉伯文、表情符号(Emoji)、数学符号等。最新的Unicode版本为15.1,码点范围从 U+0000U+10FFFF

码点是Unicode为每个字符分配的唯一数字标识,通常用十六进制表示,格式为 U+XXXX(如 U+4E2D 代表"中")。码点范围从 U+0000U+10FFFF,分为17个平面(Plane),每个平面包含65,536个码点。最常用的是基本多语言平面(BMP,Plane 0),范围 U+0000U+FFFF,包含了大多数字符。Emoji等字符位于更高的平面(如Plane 1),码点超过 U+FFFF

  • Unicode:字符集标准,定义字符与码点的映射关系。
  • UTF-8:一种变长编码方式,用1-4个字节表示一个Unicode码点。ASCII字符(U+0000-U+007F)只需1字节,中文通常3字节,Emoji需要4字节。UTF-8是互联网最常用的编码。
  • UTF-16:用2或4个字节表示一个码点。BMP字符使用2字节,高平面字符使用4字节(代理对)。
  • UTF-32:固定4字节表示所有码点,简单但浪费空间。
简单来说:Unicode是"字典",UTF-8/UTF-16是"传输格式"

格式示例(字符"中")使用场景
U+XXXXU+4E2DUnicode标准表示法
\uXXXX\u4e2dJavaScript/Java/C#等编程语言
\u{XXXXX}\u{4E2D}JavaScript ES6+(支持高码点)
&#DDDD;中HTML十进制实体
&#xXXXX;中HTML十六进制实体
0xXXXX0x4E2D编程语言十六进制字面量

字符→码点:在左侧面板输入任意文本,工具会实时显示每个字符的Unicode码点。你可以选择不同的输出格式(U+、\u、HTML实体等)和分隔符,一键复制结果。展开"字符详情"表格可查看每个字符的UTF-8字节、HTML实体等完整信息。

码点→字符:在右侧面板输入码点(支持U+XXXX、\uXXXX、&#DDDD;、0xXXXX、纯十六进制、纯十进制等多种格式),用空格/逗号/换行分隔多个码点,工具会自动解析并还原为字符。下方展示每个码点的解析详情。

Emoji大多位于Unicode的补充平面(Plane 1,U+1F000-U+1FFFF),码点超过U+FFFF。例如:😀 的码点是 U+1F600,🎉 是 U+1F389,❤️ 是 U+2764 U+FE0F(部分Emoji由多个码点组合而成)。在JavaScript中,高码点Emoji需要使用 \u{1F600} 格式或代理对 \uD83D\uDE00。本工具完整支持所有平面的Unicode字符。

在UTF-16编码中,BMP字符(U+0000-U+FFFF)直接用2字节表示。但对于超过U+FFFF的码点(如Emoji),UTF-16使用代理对——两个特殊的16位代码单元(高位代理U+D800-U+DBFF,低位代理U+DC00-U+DFFF)共同表示一个码点。代理对范围本身不是有效字符。计算方式:
码点 = 0x10000 + (高代理-0xD800)×0x400 + (低代理-0xDC00)
在JavaScript中,String.fromCodePoint()String.codePointAt() 可正确处理代理对。

Unicode共17个平面:
Plane 0 (BMP):U+0000-U+FFFF,包含大多数字符
Plane 1 (SMP):U+10000-U+1FFFF,古文字、Emoji、音乐符号等
Plane 2 (SIP):U+20000-U+2FFFF,CJK扩展B区汉字
Plane 14 (SSP):U+E0000-U+EFFFF,标签字符、变体选择器
Plane 15-16:私有使用区
特殊范围:U+D800-U+DFFF(代理对,非有效字符)、U+FDD0-U+FDEF(非字符)、U+FFFE-U+FFFF(非字符,常作BOM标记)。