文本与数据工具

Character Counter

区分“看到几个字符”和“底层占多少编码单位”,检查中文、emoji 与 UTF-8 大小。

输入文本

实时统计

区分 Unicode 码点、可见字符簇、UTF-16 长度和 UTF-8 字节,准确解释 emoji。

输入内容仅在您的浏览器中处理,不会上传到服务器。

这个工具是什么

Character Counter 专注编码层面的计数。它将 Unicode Code Points、可见字符簇、UTF-16 Code Units 和 UTF-8 Bytes 分开显示,避免把 JavaScript 的 string.length 误认为所有情况下的字符数。

如何使用

  1. 输入文字、emoji 或组合重音字符。
  2. 查看码点数、去空白字符数和 UTF-8 字节数。
  3. 比较可见字符簇与 UTF-16 代码单元;浏览器不支持字符簇分割时会明确提示。
  4. 复制原文或载入示例,检查不同表示方式的差别。

使用示例

  • 😀:1 个 Unicode 码点、2 个 UTF-16 代码单元、4 个 UTF-8 字节。
  • 👨‍👩‍👧‍👦:7 个 Unicode 码点,支持 grapheme 分割时为 1 个可见字符簇。
  • e 加组合重音与预组合 é 通常看起来相同,但前者有 2 个码点,后者有 1 个。

统计规则

字符与 Unicode Code Points 按 Array.from 等价的码点遍历统计;UTF-16 Code Units 使用原始字符串长度;UTF-8 Bytes 使用 TextEncoder。可见字符簇优先使用 Intl.Segmenter 的 grapheme 模式。输入不做 Unicode 规范化,因此组合字符的不同编码会保留。原始换行字符参与编码计数;末尾换行会产生末尾空行。单份输入最多 2,000,000 个 UTF-16 代码单元。

常见用途

  • 核对接口、文件或存储字段的 UTF-8 大小。
  • 排查 emoji 引起的长度差异。
  • 理解字形、码点和编码单位之间的关系。

隐私说明

文本、文件读取、转换和预览均在当前浏览器本地完成,不上传输入,不使用后台、数据库、在线 API 或第三方 CDN,也不会自动保存您的内容。复制和下载由浏览器本地完成。

FAQ

emoji 算几个字符?

简单 emoji 可能是一个码点,而家庭、国旗或肤色组合可能包含多个码点。可见字符簇计数更接近用户看到的数量。

为什么 UTF-16 长度可能大于字符数?

超出基本多文种平面的码点使用一对 UTF-16 代理项,因此一个码点可能占两个代码单元。

UTF-8 Bytes 是文件大小吗?

它表示当前文本编码为 UTF-8 后的字节数,不包含额外文件头、BOM 或文件系统元数据。

空格会计入吗?

普通字符数包含空白;“去空白字符数”排除空格、Tab、换行及其他 Unicode 空白。

没有 Intl.Segmenter 怎么办?

码点、UTF-16 和 UTF-8 仍可计算;可见字符簇区域会说明无法提供可靠的字符簇计数。

返回开发者工具分类首页