社交媒體字數統計(Twitter/X風格計數)
遵循X(前身為Twitter)加權計數規則的字數統計工具。全形字元按2個字元計算,半形字元按1個字元計算,即時顯示距離280字上限還剩多少字元。
使用提示
- X的字數統計並非「視覺上的字元數」,而是採用加權規則:中日韓(CJK)文字和全形符號按2個字元計算,因此與單純的字元數會有出入。
- 同樣是30個字元,純英數字帖文尚有餘裕,而純中文帖文按加權規則相當於60個字元,很快就會逼近280字的上限。
- 無論實際長度如何,URL統一按23個字元計算(t.co短連結長度),因此本工具僅作為純文本的大致參考,含URL的帖文請在實際發帖介面中最終確認。
- 每個表情符號本身是1個碼點,但按加權規則大多不屬於「寬字元」範圍,因此通常只按1個字元計算,視覺上很醒目卻不會大量佔用字數。
- 如需檢視各編碼下的位元組數,請使用姊妹工具「字串位元組數統計」;如需檢測字元編碼,請使用「字元編碼檢測」工具。
常見問題
X的計數規則將中文、日文、韓文(CJK)字元以及全形符號按2個加權字元計算。因此英文可以接近280個字元,而純中文書寫實際上大約140個字元就會達到上限。這是為了調節不同語言中每個字元所承載資訊量的巨大差異而設定的機制。
這是X(前身為Twitter)公開的開源字數統計算法「twitter-text」中定義的規則。本工具也基於這一公開規範,根據Unicode碼點範圍將字元計為1個或2個。
大多數表情符號由Unicode的一個輔助平面碼點(代理對)表示,由於不屬於CJK或全形字元範圍,按加權規則計為1個字元。不過由多個碼點組合而成的合成表情符號(如家庭表情符號)在內部由多個碼點構成,即使外觀上是一個整體,在計數上也可能算作多個字元。
姊妹工具「字串位元組數統計」測量的是在UTF-8、Shift_JIS等編碼下,將字串儲存或傳輸為資料時所需的實際位元組數。而本工具計算的是用於判斷社交媒體發帖上限的「加權字元數」,兩者的目的和計算方法都不同。
2017年之前,所有語言的上限都是140個字元。當時將CJK語言按2個字元計算的加權規則就已經存在。當上限對英語等語言翻倍至280字後,CJK語言使用者也能夠釋出與英語使用者大致相當的文字量。
閒話 ― 為什麼X要對字元進行「加權」計數
Twitter(X的前身)最初採用140字元上限時,英語使用者經常抱怨140個字元太短了。因為一個字母所承載的資訊量遠小於一個漢字,同樣是140個字元,中文可以描寫小說中的一個完整場景,而英文卻只能寫出20到30個單詞左右。為了消除這種不公平,Twitter於2017年將英語等「單位元組」語言的上限翻倍至280個字元,同時將中日韓(CJK)語言實際上維持在相當於140個字元(加權280字元)的水平,這是考慮到不同語言資訊密度差異所做的調整。
這種「加權字元數」的理念其實早在簡訊(SMS)領域就已存在。標準GSM編碼的簡訊通常上限為160個字元,但只要包含一個不屬於標準7位GSM字元集的表情符號或中文字元,編碼方式就會切換為UCS-2,上限驟降至70個字元。「使用某種語言的一個字元就會使可用字數減半」這一現象,與X的字元加權規則一樣,都體現了內部文字編碼與使用者體驗之間有趣的聯絡。
此外,加權規則也適用於表情符號:大多數表情符號只計為1個字元,但通過零寬連線符(Zero Width Joiner)組合膚色或性別修飾符的合成表情符號,在內部由多個Unicode碼點構成,因此外觀上是一個表情符號,計數時卻可能算作多個字元。在社交媒體發帖時留意這種「視覺字數」與「系統計數」之間的差異,有助於避免意外超出字數上限。