小红书文案字数统计

emoji 按用户感知计数 · 正文 1000 字与标题 20 字上限检测 · 文案不上传

文案直接在浏览器里统计,不发送任何网络请求,也不会写入本地存储; 你可以打开开发者工具的网络面板自行验证。

已用 0 / 20 标题按正文同口径统计,emoji 同样按 1 个字计。

正文按最费字的口径计算占用,emoji、话题标签都会算进去。

📊 字数概览

正文占用(最费字口径)0
剩余额度 / 1000 字1000
emoji 个数0
汉字个数0

已用 0%(0 / 1000 字,按最费字口径)

粘贴文案后这里会实时显示字数与明细。

📖 使用说明

  1. 把写好的文案粘贴进正文框,标题单独填在标题框,字数会随输入实时更新。
  2. 顶部"正文占用"按最费字的口径计算:三种口径里取最大的那个, 这样只要它没超 1000,三种口径下都不会超。
  3. 表格里可以逐项核对汉字、emoji、话题标签、空格各占多少,方便定位"字数去哪了"。
  4. 写完点"复制原文"取回文本,内容始终只在你本机。

❓ 常见问题

Q:emoji 到底占几个字?

A:没有唯一答案,取决于计数口径。按用户感知(字素簇)一个表情算 1 个; 按 UTF-16 码元,😀 算 2 个,🏃‍♀️ 算 5 个,👨‍👩‍👧 算 8 个,国旗 🇨🇳 算 4 个。 本站三种口径都给出来,可以拿编辑器里的实时字数对照,确认平台用的哪一种。

Q:统计结果和平台显示的完全一致吗?

A:不做这种保证。平台内部的计数实现没有公开说明且会调整, 所以本站给出三种口径,并用最费字的那一种算剩余额度—— 结果永远偏保守,宁可提示你少写了,不会让你发出去才发现超限。

Q:文案内容会被上传吗?

A:不会。统计是一段纯 JavaScript 在浏览器里跑的,文本只存在于当前页面的内存变量中, 不发网络请求、不写本地存储,刷新或关闭页面就没了。

🧮 为什么同一个表情会算出不同的字数

Unicode 里"一个 emoji"并不是"一个字符"。以 🏃‍♀️ 为例,它由四个码点拼成: 跑步者 U+1F3C3、零宽连接符 U+200D、女性符号 U+2640、变体选择符 U+FE0F。 前两个码点在 UTF-16 里各占 1 个码元,而 U+1F3C3 属于补充平面,需要两个码元表示, 所以它在 JavaScript 的 length 里是 5。公式可以写成:

码元数 = Σ(每个码点的码元宽度),其中 BMP 内为 1、补充平面为 2; 字素簇数 = 把由 ZWJ / 变体选择符 / 键帽符 / 区域指示符连起来的序列算作 1。

这解释了一个常见困惑:文案里看着只加了 10 个表情,平台却提示多占了二三十字—— 因为组合表情(肤色、性别、家庭、国旗)的成本是普通表情的好几倍。 下面的对照表用真实字符算过,可以直接对照:

常见 emoji 的字符成本(本站按 Unicode 属性实际计算,非估算)
表情组成码点码元字素簇
😀基本 emoji121
❤️符号 + 变体选择符221
🏃‍♀️ZWJ 组合 + 性别符号451
👨‍👩‍👧三个 emoji 用 ZWJ 连接581
🇨🇳两个区域指示符241
1️⃣数字 + 键帽符331

🧾 示例演算

以示例文案为例,逐项拆开是这样算出来的:

今天试了 3 款跑步鞋,最轻的一双只有 180g!🏃‍♀️ 附上实测数据👇 #跑步 #跑鞋测评

项目数值来源
字素簇(用户感知)44汉字 27 + 标点 4 + 数字 4 + 字母 1 + emoji 2 + 空格 6
Unicode 码点47两个 emoji 的码点数分别是 4 和 1,比"各算 1 个"多出 3
UTF-16 码元49两个 emoji 合计占 7 个码元,其余字符各占 1
汉字27其中 6 个来自话题标签:#跑步(2)、#跑鞋测评(4)
emoji2🏃‍♀️(5 码元)+ 👇(2 码元)= 7 码元
数字串23、180;字母 g 计入英文单词,共 1 个
话题标签2#跑步、#跑鞋测评,标签内文字同时计入汉字数

结论:这段文案"看起来"是 44 个字,但在最严的口径下占 49 字。如果正文已经写到 990 字, 再补两个组合表情就可能越过 1000 字上限——这正是把 emoji 单独统计的意义。

🎯 适用范围

  • 小红书笔记正文与标题的限字自查,尤其是 emoji、话题标签很多的文案。
  • 抖音图文、微博、公众号摘要、B 站简介等有字数上限的短文案场景。
  • 需要按字符数报价的文案代写、脚本外包结算前的核对。
  • 不适用于:需要按平台内部规则精确复现字数的场景(规则未公开,请以编辑器提示为准)、 以及查重系统的字符数口径统计(见"论文查重字数统计"工具)。