推特字数限制,以及另外三种被人混为一谈的「限制」

16 min readSocialAPI 工程团队

推特字数限制,以及另外三种被人混为一谈的「限制」

"我撞上推特的限制了"描述的是四种互不相关的情况,而每一种的解法都不同。

限制 限的是什么 症状
字数限制 单条帖子的长度 输入框不让你继续打字
每日发帖上限 每天的发帖次数 提示"已超出每日限制"
账号可见性受限 触达,不是数量 什么都能做,但没人看到
API 速率限制 单位时间的请求数 代码收到 429

★大多数文章只写第一种。★ 这篇四种都讲,因为你撞上的是哪一种,决定了你该缩短文字、等一天、检查账号,还是改代码。


字数限制

标准帖子 280 字符。有付费订阅的账号是 25,000。

25,000 这个数字是大部分困惑的来源:★长帖在预览里仍然只显示 280 字符★ —— 时间线、引用和嵌入都会截断并显示"显示更多"。所以一条长帖在不同的地方读起来是不一样的。

其它长度上限:

字段 上限
显示名 50 字符
简介 160 字符
用户名 15 字符
私信 10,000 字符

如果你在做展示推文的东西,★你算出的字符数必须匹配 X 的规则,否则你的预览就是错的★ —— 原始文本随每条推文返回,你可以自己算。


★字符到底怎么算★

这部分正是各家计数器给出不同答案的原因,也是每一个"推特字数统计"搜索背后的真实内容。

1. 链接是固定长度,与 URL 实际长度无关。 每个链接都会被内部缩短并计为一个常数 —— 约 23 字符 —— ★无论那个 URL 是 20 字符还是 200 字符★。一条带三个长链接的帖子,消耗远比原文看起来少。

2. Emoji 算 2 个字符。 大多数 emoji 消耗两个字符而不是一个。有些组合 emoji —— 肤色、家庭组合 —— 消耗更多,因为它们是好几个码点拼起来的。

3. 中日韩字符算 2 个。 中文、日文、韩文的每个字符都算双倍。★所以一条中文帖子的实际上限是 140 字,不是 280。★ 这一点会让做多语言工具的人意外,也是最常见的计数 bug。

4. 媒体不占字数。 图片、视频、GIF 和投票完全不消耗你的字符预算。被引用推文的正文也不算 —— 只算你自己写的评论。

⚠️ 为什么朴素的计数器是错的: 任何语言里的 len(text) 上面四条全都算错。如果你在算字数,必须建模链接缩短和加权字符,否则你的数字会恰好在最要紧的时候和 X 的输入框对不上。


每日发帖上限

和长度无关,而且 X 不公布确切数字 —— 它随账号年龄、认证状态和行为而变。

公开指引大致是:

  • 每日发帖:几百条,按滚动 24 小时计
  • 私信:每天几百条
  • 关注:每日有上限,而且当你关注数远超粉丝数时还有比例限制

⚠️ ★为什么确切数字无法公布:这些是动态调整的。 一个行为正常的老账号,余量比一个注册一周、发帖飞快的账号大得多。★ 任何报出精确数字的,报的都是一个快照。

如果你撞上了: 等。这是滚动窗口,会自己清掉。 没有任何办法加速它,而反复重试会让这个模式看起来更像自动化。


那种"不是限制"的限制

★最容易混淆的情况:什么都能做,但没人看到你的帖子。★

那不是上面意义上的限制 —— 你并没有被阻止做任何事。它是一个可见性问题,而诊断方式完全不同:要查你的推文找不找得到,而不是查动作成不成功。完整的四步测试在这里。

区分的问题是:你还能发帖吗? 能的话,你就没撞上发帖上限。如果推文在搜索里也找得到,那你多半也没被限制可见性 —— 低触达只是普通的波动。


API 速率限制

如果你的代码收到 429,那是完全不同的第四件事 —— 单位时间的请求量,和你发多少帖、文字多长都无关。

正确处理它比记住数字更重要(数字会变):撞上时该怎么办。


用代码正确计数

import re

# X 把每个链接缩短成固定长度
LINK_LEN = 23
URL = re.compile(r'https?://\S+')

def weighted_length(text):
    """近似 X 的计数方式:链接固定、中日韩与 emoji 权重 2。"""
    # 把链接换成固定成本
    stripped = URL.sub("", text)
    link_cost = len(URL.findall(text)) * LINK_LEN

    count = 0
    for ch in stripped:
        o = ord(ch)
        # 中日韩、全角字符和大多数 emoji 算双倍
        if (0x1100 <= o <= 0x11FF or 0x2E80 <= o <= 0xA4CF
                or 0xAC00 <= o <= 0xD7A3 or 0xF900 <= o <= 0xFAFF
                or 0xFE30 <= o <= 0xFE4F or 0xFF00 <= o <= 0xFF60
                or o > 0xFFFF):
            count += 2
        else:
            count += 1
    return count + link_cost

for s in ["Hello world",
          "看看这条推文",
          "Check https://example.com/a/very/long/path/that/goes/on"]:
    print(f"{weighted_length(s):>4}  {s[:45]}")

★这是一个近似,不是重新实现。★(原始文本随每条推文返回 —— 计数这一步是你自己做的。) X 的确切规则涉及一些这段代码没建模的归一化细节。它足够准到能在用户撞墙之前提醒他,而你应该把输入框当作权威。

这在哪里要紧: 任何起草、定时或预览帖子的工具。⚠️ 在中日韩方向算错是最糟的版本 —— 你会告诉一个中文用户还剩 200 字,而实际只剩 60。


大家会问的问题

推特字数限制是多少? 标准 280,付费订阅 25,000。预览仍然在 280 处截断。

一条推文能写多少字? 默认 280。长帖在时间线里显示"显示更多"而不是完整展开。

推特提高字数限制了吗? 对订阅用户提高了 —— 最多 25,000。免费档仍是 280。

2026 年推特能发多少字? 标准 280,订阅 25,000。近期没有变化。

链接算进字数吗? 算,但是固定成本 —— 约 23 字符,与 URL 实际长度无关。

图片算进字数吗? 不算。媒体、投票和被引用推文的正文都不消耗字符预算。

Emoji 算一个字符吗? 不算,大多数算两个。 带肤色或组合的 emoji 消耗更多。

中文字符怎么算? ★每个算两个★,所以中文的实际上限是 140 字。

日文和韩文怎么算? 和中文一样 —— 每个两个,实际上限 140。

我的计数器为什么和推特对不上? 几乎总是链接缩短或加权字符。 len(text) 这两个都算错。

最好的推特字数统计器是哪个? 任何建模了链接缩短和中日韩加权的。输入框才是权威,计数器用于起草。

怎么用代码算推特字数? 把链接替换成固定成本,中日韩和 emoji 按 2 计。上面那段代码是可用的近似。

显示名能多少字? 50 字符。

简介能多少字? 160 字符。

用户名能多长? 15 字符,只能是字母、数字和下划线。

私信能多少字? 10,000 字符 —— 比帖子长得多。

每天能发多少条推文? 几百条,按滚动 24 小时算。X 不公布确切数字,因为它随账号而变。

撞上每日发帖上限会怎样? 发帖被阻止,直到滚动窗口清掉。 等待是唯一的解法。

每天能发多少私信? 几百条,新账号更低。不精确公布。

每天能关注多少人? 每日有上限,而且当关注数远超粉丝数时还有比例限制。

为什么提示我被限流了? 要么是每日动作上限,要么是你浏览量过大时的阅读限制。两者都是会自己清掉的滚动窗口。

为什么我收到 429? 那是 API 速率限制 —— 请求量,和发帖无关。见正确处理它。

推特 API 的限额是多少? 随端点和档位而变,而且会调整。见各档要花多少钱。

删推文能腾出每日额度吗? 不能。计的是已发生的动作,不是当前存在的帖子。

一条长贴总共能多少字? 长贴里每一条各有自己的上限。 长贴正是人们在没有订阅的情况下超过 280 的方式。

编辑推文能加字吗? 编辑是订阅功能且有时间窗口,字数上限不变。

引用推文的原文算字数吗? 不算 —— 只算你自己写的评论。

能用多少个话题标签? 没有硬上限,但它们消耗字符,而且超过两个会降低互动。

一次能给多少人发私信? 群消息人数有上限,而批量私信是最容易触发限制的行为。

投票算字数吗? 投票本身不算;投票选项文字有它自己单独的上限。

我明明没超 280,为什么发不出去? 可能是:每日上限、账号限制,或者重复内容检查 —— X 会阻止你反复发一模一样的文字。

能看到我还剩多少每日额度吗? 不能,X 不暴露计数器。你是撞上了才知道。

转发算进每日上限吗? 算,转发也是动作。

怎么避免撞上限制? 把动作分散开,不要爆发式操作。 快速连续的操作正是同时触发每日上限和账号限制的原因。

推特当前的字数限制是多少? 普通账号 280,订阅用户高得多。 ★人们带着年份去搜的那个数字,已经很久没变过了★ —— 变的是订阅档位,不是基础档。

一条推文能有多长? 没有订阅的话是 280 个字符。 ★长文是付费功能★,这才是大多数带年份搜索背后的真实答案。

推特字符计数是多少? 基础档 280,回复和引用同样适用这个限制。★计数方式不是朴素的★ —— 编辑框会边打边数,链接和 emoji 的算法见下。

字数限制包含链接吗? 链接按固定长度计,不按实际长度。★一个很长的 URL 和一个短的花费相同。★

emoji 算一个字符吗? ★经常不算。★ 很多算两个,组合 emoji 可能更多 —— 这正是一条看起来很短的帖子也可能被拒绝的原因。

字数限制变过吗? 基础限制一直很稳定。 ★变的是付费档位获得了长得多的帖子★ —— 这是这里大部分困惑的来源。


你到底撞上了哪一种

输入框不让继续打字 → 字数限制。在怀疑计数器之前,先确认链接和中日韩的算法。

"已超出每日限制" → 动作上限。等滚动窗口。

什么都能做但触达塌了 → 根本不是限制。改去测可见性。

代码收到 429 → API 速率限制。完全不同的问题。

对最后一种,我们的 API 没有属于你的限流要管 —— 那部分在我们这边处理。它是只读的,所以既不能代你发帖,也不会消耗你的发帖额度。

延伸阅读:处理 API 限流 · 测试可见性限制 · 正确衡量触达 · 各档接口的成本。