Unicode 字符检查器
文本
本工具会把每个字符列成一行:字符本身、`U+HHHH` 十六进制码点、UTF-8 字节序列、HTML 十进制实体(`&#NNNN;`)、CSS 转义(`\HHHH`),以及它所属的 Unicode 区块。便于排查乱码、确认某个含混字符的真实码点(究竟是 hyphen-minus 还是 em dash?)、统计 UTF-8 存储下字符串占多少字节。用 Array.from 迭代码点,正确处理代理对。
—
string.length
13
码点数
12
UTF-8 字节
19
| 字符 | 码点 | UTF-8 字节 | HTML 实体 | CSS 转义 | 区块 |
|---|---|---|---|---|---|
| H | U+0048 | 48 | H | \0048 | Basic Latin (ASCII) |
| e | U+0065 | 65 | e | \0065 | Basic Latin (ASCII) |
| l | U+006C | 6C | l | \006C | Basic Latin (ASCII) |
| l | U+006C | 6C | l | \006C | Basic Latin (ASCII) |
| o | U+006F | 6F | o | \006F | Basic Latin (ASCII) |
| , | U+002C | 2C | , | \002C | Basic Latin (ASCII) |
| ␠ | U+0020 | 20 |   | \0020 | Basic Latin (ASCII) |
| 世 | U+4E16 | E4 B8 96 | 世 | \4E16 | CJK Unified Ideographs |
| 界 | U+754C | E7 95 8C | 界 | \754C | CJK Unified Ideographs |
| ! | U+0021 | 21 | ! | \0021 | Basic Latin (ASCII) |
| ␠ | U+0020 | 20 |   | \0020 | Basic Latin (ASCII) |
| 🌏 | U+1F30F | F0 9F 8C 8F | 🌏 | \1F30F | Miscellaneous Symbols & Pictographs |
用 Array.from 迭代码点(代理对安全)。区块名覆盖最常见 Unicode 范围——较冷门的会显示 '—'。
使用方法
- 在输入框粘贴或输入文本。
- 在表格查看每个字符的元数据。
- 用复制按钮把解析后的表导出为 TSV。
常见问题
- 为什么 🌏 只一行但 len = 2?
- emoji 与其他辅助平面码点(>U+FFFF)在 JavaScript 字符串里占 2 个 UTF-16 码元,但对用户来说是一个字符。本工具按码点(Array.from)计行数,同时单独报 `string.length`,方便你看到差异。
- 总字节和 UTF-8 列等同吗?
- 等同。总字节 = 各行 UTF-8 字节数之和;为应对边界情况,用 TextEncoder 精确计算。便于估算存储与传输大小。
- 什么是乱码(mojibake)?
- 用错误编码解读字节得到的乱字。经典例:UTF-8 的 'é'(C3 A9)若按 Latin-1 读就变成 'é'。本工具可帮诊断——把乱码贴进来,看码点是否与 "UTF-8 被错解" 应得的结果一致。
- 组合字符 / 字素簇怎么办?
- 我们显示码点,不显示字素。'é' 可以是 1 个码点(U+00E9),也可以是 2 个(e + 组合锐音,U+0065 + U+0301),视觉上一样但字节不同。要做严格的字素计数,请用 Intl.Segmenter——超出本工具范围。