阅读时可检查一个示例
将文本粘贴到计数器中,与下面的示例进行对比,查看结果差异。
为什么两个字符计数器会得出不同结果?
它们可能在统计不同单位。计数器可能统计可见符号、Unicode 码点、UTF-16 代码单元或字节,也可能包含或排除空白字符。任何单一数字都不能直接证明某个表单一定接受这段文字。
ToolKnit 当前使用 JavaScript 字符串长度作为总数:包含空白字符的 UTF-16 代码单元数。普通英文字母与许多常用汉字各占一个单元,部分 Emoji 占两个或更多。本指南解释这种规则;要测量自己的文字,请打开字符计数器。
空格和换行符:包含哪些内容?
总字数包含空格、制表符和换行符。标记为字符数(不含空白)的数值会移除空白字符,包括制表符和换行符,而不仅仅是单词之间的可见空格。因此,一个空行即使不增加字母也会改变总字数。
| 文本 | 总字数 | 不含空白字符 | 段落 |
|---|---|---|---|
Hi! | 3 | 3 | 1 |
A B | 3 | 2 | 1 |
A\nB — 一行换行 | 3 | 2 | 1 |
A\n\nB — 一个空行 | 4 | 2 | 2 |
这里\n指的是一个换行符字符,而不是反斜杠后跟字母n。粘贴到浏览器文本框中的文本使用标准化换行符;其他编辑器或文件格式可能以不同方式表示换行符。
为什么一个表情符号可能被算作多个字符?
一个可见符号不一定只占一个存储单元。笑脸 🙂 占两个 UTF-16 单元;家庭 👨👩👧👦 由多个 Emoji 与不可见连接符组成,即使设备显示为一个家庭图案,ToolKnit 也会统计为十一个单元。
重音字母也有类似差别:单一码点 U+00E9 的 é 占一个单元;由 U+0065 加组合重音 U+0301 构成的 é 占两个,两者外观可能相同。ToolKnit 不把这两种写法归一为同一表示,也不统计更接近可见符号的字素簇(grapheme clusters)。
因此,字符总数也不能说明 UTF-8 文件体积。字节衡量存储大小,本工具显示的总数衡量 UTF-16 代码单元。
中文文本中的字符并不等同于词语
你好在 ToolKnit 中总数为 2,词数估计也为 2。第二个数不代表工具识别出了两个语言学意义上的词。它逐个统计支持的汉字,再加上按空白分隔、包含英文字母或数字的词元。
例如,Hello 世界共有 8 个单元,去掉空白后为 7,词数估计为 3。这适合粗略观察混合文本,但不是中文分词。支持范围之外的罕见汉字、日语假名和韩文字母,不能通过该方法得到可靠的语言学词数。部分补充平面的汉字也占两个 UTF-16 单元。
如果任务需要中文字符,请使用相应的字符总数,并检查是否允许标点符号和空白字符。如果要求特定语言的词语,请使用该任务所需的编辑器或计数规则。
段落、句子和阅读时间是不同的估算
ToolKnit 通过空行划分段落。按一次 Enter 只增加一行,仍属于同一个计数段落;窄屏手机上的自动折行不会新增文本中的换行字符。完整示例可查看2000 个字符可以包含多少段。
句数按句号、问号和感叹号(包括相应中文标点)分隔。这只是简单估算:Dr. 这样的缩写或小数点,即使不是句末,也可能被拆分。
阅读时长按英文式词元每分钟 200 个、识别到的汉字每分钟 300 个分别换算后相加。这只是工具的计算假设,不保证符合你的阅读速度或理解程度。
表单拒绝文本时应检查什么
- 阅读目标平台的规定。 了解其是否限制了词数、字符数、可见符号或字节数,以及是否将空白字符计入。不同服务可能对链接或表情符号有特殊处理。
- 与目标内容精确比对。 如有可能,从目标平台复制回原文。检查开头或结尾的空格、空行以及粘贴过程中引入的格式问题。
- 尝试一个已知的小例子。 在两个计数器中对比
A B和🙂。两者不一致可能表明计数规则不同,而非文本丢失。 - 以目标平台为最终检查标准。ToolKnit 只是写作辅助工具,提交内容是否符合限制,应以接收文本的编辑器或表单为准。
常见问题
ToolKnit 在字符计数中是否包含空格?
是的。总字符数包括空格、制表符和换行符。'字符(不含空白)' 的数值则排除了所有空白字符,包括制表符和换行符。
表情符号是否总是算作一个字符?
不是。ToolKnit 按 UTF-16 编码单元计数,因此一个笑脸表情可能计为两个字符,一个连写表情序列可能计为更多字符。某些仅计算可见符号的服务可能会显示不同的总数。
按 Enter 键是否添加一个新段落?
一行换行只增加一行。ToolKnit 在非空文本块之间以空行分隔时才认定为新段落。自动换行不会增加段落。
检查定义
上述示例描述的是当前实现情况,并非通用平台标准。关于底层文本概念,请参见 MDN 上 JavaScript 字符串长度 和 Unicode 文本分割规范 。要测量草稿,请返回 字符计数器 。