字符串长度统计
粘贴文本后统计字符数、UTF-8 字节数、行数、词数、空格数与中文字符数,并按编码显示占用,适合文案字数核对、数据库字段长度评估与 SEO 字数校验。
📏 String Length Counter
Count characters, bytes, lines, words and spaces.
📐 工作原理与说明
统计文本的字符数、字节数、词数与行数,是内容与接口限长校验的常用工具。
- 字符 vs 码元:JS 的
.length计的是 UTF-16 码元,emoji 与部分生僻汉字占 2 个码元。 - 准确计数:用
[...str].length或Intl.Segmenter按字素簇切分更符合直觉。 - 字节数:取决于编码,UTF-8 下英文 1 字节、常用中文 3 字节、emoji 常 4 字节。
- 词数:英文按空白与标点切分;中文需分词,常用字数与字符数近似。
📌 统计规则
- 字符数:Unicode 码点数量(含空格、换行、标点)。
- 字节数:按 UTF-8 编码计算,中文通常占 3 字节。
- 词数:按空白分隔的连续非空白片段计数。
- 行数:按换行符分割,空文本计为 0 行。
📚 深度解析:字符串长度统计
💡 常见使用场景
- 校验输入长度(如密码、短信字数)。
- 接口限长校验:短信按 70 字/条计费(含 emoji 时更少),提交前先统计真实字符数与字节数,避免超长被拆分或截断。
统计
"Hello 世界":字符数 8(H e l l o 空格 世 界),UTF-8 字节数 11(中文各 3 字节)。
❓ 常见问题(FAQ)
- 字符数与字节数为何不同?
- 中文等多字节字符在 UTF-8 占多字节,数据库常按字节限制。
- 为什么 emoji 长度算出来是 2?
- 因为 JS 字符串的 .length 统计的是 UTF-16 码元,而 emoji 大多位于辅助平面、需两个码元(代理对)表示。要得到「人眼看到的字符数」,应遍历 [...str] 或用 Intl.Segmenter 按字素簇计数;统计传输体积则要看 UTF-8 字节数。