文本工具
工具菜单

字符数统计

区分可见字符、代码点与 UTF-8 字节。 输入内容在浏览器本地处理。

支持多行内容

输入后自动更新统计。

字符数量与字符串长度怎样区分?

给文章设置长度限制、检查短信内容、调试接口字段或计算存储空间时,“长度”可能指不同的东西。这个页面把可见字符、非空白字符、Unicode 代码点、UTF-16 代码单元和 UTF-8 字节分别显示,避免把一种计数误用到另一种限制上。直接粘贴文本即可实时查看结果,内容无需提交到服务器。统计过程中不会删除或改写原文,空格、换行和组合字符都会按当前输入参与计算。

最接近用户视觉习惯的是字素簇数量,也就是这里的总字符数。一些看起来完整的字符实际上由多个代码点组成,程序的字符串长度则可能更大。若表单只说“最多一百字”而没有解释规则,不能推断它使用哪一项。建议用一个汉字、一个普通字母、一个表情和一组组合字符测试目标平台,再选择一致的结果。编码空间和屏幕显示宽度也不是同一个概念,字节少的字符不一定占用更窄的位置。

Unicode 代码点和 UTF-16 代码单元

Unicode 给文字和符号分配代码点,代码点数量按字符串迭代得到,而不是简单读取 JavaScript 的 length。UTF-16 使用十六位代码单元保存字符,基本多文种平面之外的字符通常需要一对代理项。比如一个普通英文字母通常占一个代码单元,而一个常见笑脸表情占两个。扩展汉字也可能占两个代码单元,不能因为它看起来是一个汉字,就断定程序长度一定为一。

本工具同时展示这两个值,让开发者检查程序接口为何产生不同结果。例如“中😀a”的可见字符和代码点都是三个,UTF-16 代码单元却是四个。代码单元数量直接对应 JavaScript 字符串的 length,用于理解现有程序规则,但它不代表用户看到的字符数。统计并不会自动做 Unicode 规范化,预组合字母与字母加组合重音的写法可能看起来一样,代码点数量却不同。要比较编码表示,应保留这类差异。

为什么 Emoji 和组合字母要单独处理?

一个表情可能包含肤色修饰、零宽连接符、性别或家庭成员,国旗通常由两个区域指示符组成。若把每个代码点都当作一个可见字符,家庭表情和国旗的数量就会明显偏大。页面使用浏览器的字素分段能力,将完整的组合尽量作为一个单位计数。带组合重音的 e 与预组合的 é,在总字符数中都可以显示为一个,但在代码点和字节数里保留各自真实表示。

Emoji 数量是对字素簇中常见表情属性、区域指示符及键帽组合的识别,适合观察文本中表情组合的大致数量。它并不是某个社交平台的表情资源库,也不判断字符是否在你当前字体里成功显示。不同系统的字形可能不一致,较旧浏览器对新加入的表情分段也可能存在差异。需要测试特定设备时,应直接查看那台设备的显示。复制统计原文能保留组合结构,随意按代码单元截断则可能破坏字符。

UTF-8 字节统计有什么用?

UTF-8 字节数通过浏览器标准编码器计算,是当前字符串编码后的数据大小,不包含文本文件的字节顺序标记、文件系统信息或网络协议头。常见英文字母通常占一个字节,常见汉字通常占三个字节,许多表情占四个或更多字节。一个组合表情由多个代码点构成,整体占用会更大。因此,相同的可见字符数并不保证相同的编码大小,限制字段容量时应查看实际字节而不是估算。

换行也会占用字节。Windows 常见的回车加换行与单独换行在编码后大小不同,此处字符统计保留原始换行表示,不会先统一成另一种格式。浏览器输入框对粘贴内容可能进行自身的换行规范化,所以统计的是输入框目前实际保存的字符串。下载的文本由同一份字符串生成,不额外添加字节顺序标记。若原始文件有其他编码,粘贴到页面后已经成为浏览器字符串,不能用结果直接推断原文件大小。

不含空白的数量和大文本使用建议

不含空白字符数排除由 Unicode 空白组成的字素簇,包括普通空格、制表符和换行;它不只排除键盘空格键输入的那一种字符。零宽连接符用于组合表情时仍是该字素簇的一部分,不能简单删除,否则视觉字符可能被拆开。需要真正清理每行首尾、连续空格或空行时,可以使用空格处理工具,先预览结果再复制。计数与清理分开,有助于保留原文并发现差异来源。

较大输入在浏览器后台线程中计算,输入变化后会停止过时任务,只保留最新一次统计。超过五兆字节会出现提示,设备较慢时可以按章节或记录批次处理。核心功能无需账户,不调用远程文本接口,也不自动写入本地历史。复制和下载由你主动选择,关闭页面可能丢失当前内容。若字符数量用于付款、考试或正式提交,应核对目标系统的计数规范,本页提供可核查的多种口径,不能替对方定义规则。

常见问题

😀 为什么不是两个可见字符?

它是一个字素簇和一个代码点,但在 UTF-16 中占两个代码单元。这里将这些口径分开显示。

家庭表情和国旗如何计数?

浏览器按字素簇分段,完整的家庭表情和国旗通常分别算一个可见字符,代码点和字节数另行统计。

汉字一定占三个 UTF-8 字节吗?

常见汉字通常占三个字节,部分扩展汉字占四个字节;页面使用标准编码器计算实际大小。

结果包含文本文件的文件头吗?

不包含。UTF-8 字节数仅编码当前字符串,不包含字节顺序标记、文件信息或传输头。

计数会改变输入吗?

不会。页面读取当前输入,统计功能不删除空白,也不执行 Unicode 规范化。