這段文字還放得進哪裡 — 所有限制即時比對
所有計算都在你的瀏覽器裡完成 — 輸入的內容不會上傳,也不會被儲存。想順便換個字體嗎?UltraTextGen 產生器可以轉換成 100 種以上可複製貼上的字體。
硬性限制與軟性限制
被稱作「字數限制」的其實有兩種,超過之後的代價完全不同。
| 類型 | 超過會怎樣 | 例子 |
|---|---|---|
| 硬性限制 (真正的上限) |
平台直接拒絕。貼文送不出去,名稱存不起來。 | X 貼文 280 · Discord 暱稱 32 · TikTok 使用者名稱 24 · SMS 單則 |
| 軟性限制 (收合截斷) |
你還是可以繼續打,但讀者不點「更多」就看不到後面的內容。 | Instagram 貼文說明 125 字後 · LinkedIn 貼文行動版約 140 字、電腦版約 210 字後 · YouTube 說明約 157 字後 |
大多數人真正在對付的其實是軟性限制,卻幾乎沒有字數工具會把它顯示出來。一則 LinkedIn 貼文可以打 3,000 個字元,但真正有用的大約只有前面 140 個,其餘都藏在沒人會點的那一下之後。所以上方的工具直接把收合的位置畫出來 — 打字進去,你會看到「顯示更多」之前實際出現的那段文字,切線之後的部分會變淡,同時也看得到同一個開頭在其他會收合的版位撐不撐得住。
這裡要特別講清楚:收合是用畫面上看得到的字數來算的。中文字在 UTF-8 佔 3 個位元組,但在收合的計算裡,一個字就是一個字。Instagram 的 125 字元收合,中文一樣放得下 125 個字,不會因為位元組而縮水。位元組會卡住你的是「送不送得出去」的硬性限制那一邊,跟收合是兩回事。
各個版位在哪裡收合,用什麼裝置看:
| 版位 | 手機 | 電腦 | 對開頭的意義 |
|---|---|---|---|
| LinkedIn 貼文 | 約 140 | 約 210 | 寫在 140 個字元以內,兩邊都撐得住 — 這是表中裝置落差最大的一個版位。 |
| Instagram 貼文說明 | 約 125 | 約 125 | 表中最緊的收合 — 大概只有一句話,就到「⋯更多」了。 |
| YouTube 說明 | 約 157 | 約 157 | 標題底下、「顯示更多」之前會露出的那一段;搜尋結果抓的通常也是這裡。 |
| Facebook 貼文 | 約 477 | 約 477 | 最寬鬆的收合 — 一個短段落可以整段落在切線之前。 |
兩點要老實講。這些是從實際介面觀察到的行為,不是平台公布的限制,所以請把它們當成「穩定會顯示出來的長度」,而不是精確的門檻 — 而且這些版位也會依行數收合,開頭連換三行,可能還沒碰到任何字數就先被截斷了。如果你的開頭靠的是條列,請也到真正的發文框裡試一次。
為什麼你算的字數和平台算的不一樣
「這段有幾個字?」不只有一個正確答案,因為每個系統計算的單位不同。對中文使用者來說最關鍵的一點是:一個中文字是 1 個碼位、1 個 UTF-16 單位,但換成 UTF-8 是 3 個位元組。所以用字元數來看明明還有空間,遇到以位元組設限的欄位或系統卻會被擋下來。同一段文字,可以有四種長度:
| 計算方式 | 算的是什麼 | 中文的情況 |
|---|---|---|
| 字素 | 眼睛看到的樣子 — 帶膚色的表情符號也算 1 | 「字」= 1。Bluesky 採用 |
| 碼位(code point) | Unicode 字元數 — 👍🏽 算 2(手+膚色) | 「字」= 1。多數網路平台,以及本工具的「字元數」 |
| UTF-16 單位 | JavaScript 與許多應用程式儲存文字的方式 | 「字」= 1,但特殊字體的英數字每個算 2。HTML 表單的 maxlength、遊戲與應用程式後端 |
| UTF-8 位元組 | 儲存大小 | 「字」= 3 個位元組。資料庫 VARCHAR、電商商品欄位、Steam 名稱、舊式系統與 CSV 介接 |
這個落差在實務上很有感:一個標示「上限 255 位元組」的欄位,中文其實只放得下 85 個字。上方的「字素(看得見的字)」「UTF-16 單位」「UTF-8 位元組」三格會隨著輸入同步更新,當表單說你的文字太長、你自己算卻還沒滿時,可以當場看出它是用哪一種單位在算。至於全形與半形的換算,是中文表單特有的另一個問題,另外寫在全形與半形字元的計算方式。
除了這四種之外,還有兩個地方有自己的規則。X(推特)不是數字元、而是算加權,中文字每個計 2(詳見X(推特)的中文字數)。SMS 是以「則」計算,中文不在 GSM-7 字元集內,所以一律以 Unicode 編碼處理,每則降到 70 個字元(被拆開時是 67 個);只用半形英數字的話則是每則 160 個字元。
中文字數怎麼算 — 請看「字元數」
中文的「字數」幾乎都是指字元數:一個中文字就是一個字。上方的字元數那一格就是你要的數字 — 每一個中文字、每一個全形標點都各計 1。作業與報告的字數規定、投稿的字數上限、社群平台的字數限制,看這一格就對了。
這裡要老實說明一件事:上方的「字數(單字)」不是給中文用的。它算的是以空白分隔的詞組數量,這對英文有意義(英文的單字本來就以空白分隔),但中文寫作不會在字與字之間放空白,所以一整段中文常常只會被算成 1 個「單字」。
同樣的道理,「句數」是以半形句號、問號、驚嘆號(. ! ?)判斷斷句的,中文的全形句號「。」不會被當成句子結尾;「閱讀時間」與「朗讀時間」則是以英文每分鐘閱讀字數推估的。中文內容請一律以「字元數」為準,其餘幾格當作英文文字的參考即可。
全形與半形字元的計算方式
這個工具以 Unicode 碼位(code point)為單位計算,因此全形與半形一律各算 1 個字元:中文字「字」是 1、全形標點「,」是 1、半形英文字母「a」是 1、半形數字「1」也是 1。X、Instagram、Discord 等目前大多數的網路服務都採用同一種數法,所以拿這裡的「字元數」去對社群平台的限制是準確的。
不過並不是所有系統都這樣算。部分報名表單、投稿系統與舊式的中文排版慣例,會把一個全形字視為 2 個單位(也就是半形算 0.5 個字),在標示「限 500 字」的欄位裡實際只放得下 250 個中文字。如果對方明確寫了計算方式,請以對方的規定為準。
需要看位元組的時候,上方的「UTF-8 位元組」那一格會顯示同一段文字換算後的儲存大小 — 一個中文字通常是 3 個位元組,半形英數字是 1 個。有些商品上架欄位與資料庫欄位是以位元組設限的,那一格就是拿來對照它們的。
X(推特)的中文字數 — 實際上約 140 字
X 的貼文上限常被說成「280 個字」,但正確地說是 280 個計數單位。依照 X 公開的演算法(twitter-text),半形英數字每個計 1,中文、日文、韓文字元與大多數的表情符號、特殊符號每個計 2。所以整篇用中文寫的貼文,實際上大約只能打到 140 個字。
另外,URL 不論實際多長,一律計為 23 個計數單位:貼一個很短的網址是 23,貼一個帶著一長串追蹤參數的網址也是 23。上方檢查器裡的「X(推特)貼文」選項就是照這套加權演算法計算的,發文前可以先確認還剩下幾個計數單位。
檢查器收錄的所有字數限制
下表就是上方檢查器實際使用的那一份字數限制,供你查閱。快速跳至:X/推特 · Discord · Instagram · TikTok · SMS · 各平台的計算方式。
貼文與訊息
| 平台 | 上限 | 補充 |
|---|---|---|
| X(推特)貼文 | 280 | 加權計算:URL 一律計 23,中文字、表情符號與特殊字體每個計 2,中文貼文實際約 140 字 |
| Discord 訊息 | 2,000 | 訂閱 Nitro 為 4,000;更長的訊息會被轉成 .txt 附件 |
| Instagram 貼文說明 | 2,200 | 前幾行之後會收合成「更多」 |
| TikTok 貼文說明 | 2,200 | |
| LinkedIn 貼文 | 3,000 | 依裝置不同,約 200–700 個字元後收合成「查看更多」 |
| Facebook 貼文 | 63,206 | |
| YouTube 影片說明 | 5,000 | |
| Pinterest 圖釘說明 | 500 | |
| Telegram 訊息 | 4,096 | 照片/影片說明為 1,024 |
| Threads 貼文 | 500 | |
| Bluesky 貼文 | 300 | 以字素(看得見的字)計算,不是碼位 |
| Reddit 貼文標題 | 300 | |
| Zalo 貼文/動態 | 2,000 |
個人簡介與檔案
| 欄位 | 上限 |
|---|---|
| Instagram 個人簡介 | 150 |
| TikTok 個人簡介 | 80 |
| LinkedIn 標題(Headline) | 220 |
| WhatsApp 個人狀態 | 139 |
| Telegram 個人簡介 | 70 |
| VK 狀態 | 140 |
使用者名稱、標題與 SMS
| 欄位 | 上限 | 補充 |
|---|---|---|
| Discord 暱稱 | 32 | |
| TikTok 使用者名稱 | 24 | 只能使用半形英文字母、數字、底線與句點 |
| Instagram 使用者名稱 | 30 | |
| YouTube 影片標題 | 100 | |
| 網頁標題(SEO meta title) | 約 60 | Google 以像素寬度截斷,請當作參考值 |
| 網頁描述(SEO meta description) | 約 155 | 同樣是以像素寬度截斷 |
| SMS 簡訊 | 每則 160 | 全部使用 GSM-7 字元時。中文一律以 Unicode 編碼處理,實際每則只有 70 個字元(被拆開時為 67) |
台灣常用的服務中,LINE 狀態消息上限為 500 個字元。LINE 未包含在上方的檢查器中,請直接以「字元數」那一格對照即可。
關於字數統計的常見問題
中文的字數要看哪一個數字?
中文請看「字元數」這一格。中文的「字數」幾乎都是指字元數,一個中文字就算一個字,全形標點也各算一個。上面的「字數(單字)」算的是以空白分隔的詞組數量,對英文有意義,但中文不會在字與字之間加空白,所以整段中文常常只會被算成 1,不要拿它當中文的字數。
全形和半形字元怎麼計算?
這個工具以 Unicode 碼位為單位計算,全形與半形一律各算 1 個字元 — 中文字、全形標點、半形英文字母、半形數字都是 1。不過部分表單與報名系統仍沿用一個全形字算 2 的舊規則,在「限 500 字」的欄位裡實際只放得下 250 個中文字。對方若有明確規定計算方式,請以對方的規定為準。
在 X(推特)上中文可以打幾個字?
X 的上限是 280 個計數單位,而中文、日文、韓文字元與大多數表情符號每個計為 2,所以整篇用中文寫的貼文實際上大約只能打 140 個字。URL 不論實際多長一律計為 23。在上方的檢查器選擇「X(推特)貼文」,就是照 X 實際使用的加權演算法計算的。
空白和換行算字元嗎?
「字元數」會把空白(全形與半形)和換行一起算進去,「字元數(不含空白)」則把它們扣掉。X、Instagram、Discord 等大多數平台都把空白當成一般字元計算,所以拿貼文或個人簡介去對平台限制時,請用含空白的「字元數」。
表情符號算一個字元嗎?
通常不是。單純的表情符號在碼位上是 1,但在 UTF-16 是 2 個單位;帶膚色或由多個符號組合而成的(例如全家人的表情符號)可能是 4、7 個單位甚至更多。在 X 上每個表情符號計為 2,在 SMS 裡只要放進一個表情符號,整則訊息每則可容納的字元數就會改變。「字素(看得見的字)」顯示你眼睛看到的數量,「字元數」與「UTF-16 單位」則是實際被扣掉的額度。
為什麼我算的字數和表單顯示的不一樣?
因為各家系統計算的單位不同。中文最常見的原因是:一個中文字是 1 個碼位、1 個 UTF-16 單位,但換成 UTF-8 是 3 個位元組。以字元數設限的服務看起來還很寬鬆,但在以位元組設限的資料庫欄位、內部系統或電商商品欄位裡,額度會以三倍的速度被吃掉,於是被判定「太長」。舉例來說,上限 255 位元組的欄位,中文只放得下 85 個字。除此之外,X 使用加權計算(中文字每個算 2),Bluesky 則以字素計算。在工具最上方選好文字要發到哪裡,它就會照那裡的算法計算,而不是給你一個籠統的數字;上方的「字素(看得見的字)」「UTF-16 單位」「UTF-8 位元組」三格也會同步更新,可以直接對照。
超過限制時要怎麼把字數縮下來?
一旦超過,工具會用該平台自己的計算單位列出可以刪掉什麼、各能省下多少:把特殊字體的英文字母與數字還原成一般字元、刪除表情符號、把彎引號與長破折號改成一般符號、合併多餘空白、拿掉主題標籤,或是直接在詞的邊界截斷到剛好符合限制。每一項都只要按一下,而且都能還原,所以可以先試代價最小的做法,不必一開始就重寫。
特殊字體會被多算字數嗎?
通常會多算一倍。粗體、花體、哥德體等特殊 Unicode 英數字大多位於 U+FFFF 之上,因此看得見的每一個字母會用掉 2 個 UTF-16 單位、4 個 UTF-8 位元組,以及 X 那 280 個額度中的 2 個。這就是為什麼 10 個特殊字體字母組成的名稱,會被上限 12 字元的欄位擋下來。貼進來之後按「把特殊字體的英數字還原成一般字元」,就能立刻看到並拿回這段差距。這個轉換只作用在英文字母與數字上,中文字會原封不動保留。
隱形字元也會被算進去嗎?
會,而且這是字數莫名比看起來多的最常見原因。零寬空白、位元組順序記號(BOM),以及從其他應用程式複製時夾帶進來的填充字元,什麼都不顯示卻照樣吃掉你的額度。這個工具會把它們標示在文字框正下方,並提供一鍵移除。
輸入的文字會被儲存嗎?
不會。計算、檢查與修改都是純瀏覽器端運算,由頁面上的 JavaScript 在你的裝置上完成,輸入的文字不會上傳、不會記錄,也不會儲存到任何伺服器。工具完全免費,也不需要註冊。
想把數好的文字變成特殊字體嗎?
UltraTextGen 可以把一般文字轉換成粗體、斜體、花體等 100 種以上的 Unicode 字體,複製貼上到個人簡介、貼文或聊天室都能正常顯示,完全免費、免註冊。
開啟 UltraTextGen →