一块剪贴板ykjtb.com
文本处理

字数 / 字符统计

边写边数:中文字符、英文单词、行数、字节数实时更新,不用点按钮。

← 全部小工具

本工具 100% 在你的浏览器中运行,输入的内容不会上传到服务器,断网也能继续用。

统计结果

0字符数(含空格)
0字符数(不含空格)
0中文字符
0英文单词
0行数
0UTF-8 字节

常见字数上限对照

以「不含空格」的字符数为准;不同平台对标点、emoji 的计数规则可能略有出入,仅供参考。

等待输入
  • 中文按字、英文按词:中文一个汉字算一个字符,英文按连续字母算一个单词,两者分开统计更贴近实际需要。

  • emoji 要当心:一个 emoji 占 1 个字符,但 UTF-8 编码下可能占 4 个字节,有字节限制的接口容易被它撑爆。

  • 字节数决定能不能存下:数据库字段长度、短信条数、接口参数上限看的都是字节,不是字符。

  • 统计完要发到手机上?用 贴一块,手机扫码或输入取件码即可取走。

中文的「字数」到底怎么算

中文没有空格分词,所以「字数」天然有两种口径:字符数把每个汉字、标点、数字都算 1 个;词数需要先做分词,不同工具的分词结果还不一样。这也是为什么同一段文字,Word、记事本和各种在线工具数出来的结果经常对不上——它们根本数的不是同一个东西。

更常见的分歧在算不算空格和标点。写论文时学校要求的字数通常不含空格、含标点;投稿平台的标题上限一般按字符算,一个标点占一位;而短信、数据库的限制看的是字节:一个汉字在 UTF-8 下占 3 个字节,一个 emoji 占 4 个字节。所以本工具把这几项分开列出来,你需要哪个口径就直接看哪个数字,不用再猜。

为什么不同平台数出来的字数不一样

除了口径差异,还有三个技术原因。一是换行符:Windows 的换行是两个字符(\r\n),Unix 是一个(\n),同一段文本复制来复制去,字符数会差好几。二是全角与半角:全角逗号「,」和半角逗号 "," 是两个不同的字符,但很多平台会把全角标点折算成两个字符。三是emoji 与组合字符:带肤色、性别修饰符的 emoji 由多个码点组合而成,"看起来是一个"但字符数可能是 2 到 7 个不等。

实务上的做法是:别卡着上限写。无论哪个平台,都给自己留 5% 到 10% 的余量,避免提交时被截断。

字节数有什么用

字符数是给人看的,字节数是给机器看的。数据库 varchar(255) 在 MySQL 的 utf8mb4 下指的是 255 个字符还是字节,取决于版本与配置,但接口签名、短信条数、URL 长度限制、Cookie 大小,这些几乎一律按字节算。一条短信单条上限 70 个汉字,正是因为 70×3 字节再加上协议头,刚好卡在 140 字节的通道容量上。

常见问题

为什么中文一个字算一个字符,但占 3 个字节?

字符是"你看到的最小单位",字节是"存储时占的空间"。UTF-8 是变长编码,常用汉字大多占 3 字节,英文字母占 1 字节,emoji 通常占 4 字节。所以中文字数不多,字节数却可能很大。

英文单词是怎么算的?

按连续的字母串计算,"hello" 算 1 个词,"don't" 算 2 个(don 和 t),"2024" 这类纯数字不计入单词数。中英混排时,中文部分计入中文字符,英文部分计入单词数。

空行算不算一行?

算。行数按换行符切分后的实际行数统计,包括中间的空行;结尾末尾如果没有内容,不会多算一行。

统计结果能直接复制走吗?

可以。点「复制统计结果」会把各项数字整理成一段文字复制到剪贴板,方便贴进日报或群里。

我输入的内容会被保存到服务器吗?

不会。所有计算都在你的浏览器里完成,页面不会把输入内容发送到任何服务器。你可以打开本页后断开网络,工具依然正常工作。