文字 / 編碼

位元組計數器(UTF-8、UTF-16與SMS)

計算文字在UTF-8和UTF-16中的位元組數、碼點與可見字元數,以及所需的SMS分段數;也能在不破壞字元的情況下,將文字截斷至位元組上限。

位元組計數器(UTF-8、UTF-16與SMS): 不同系統計算長度的方式不同。網頁和大多數資料庫使用UTF-8:ASCII字元佔1個位元組,大多數帶重音字母、希臘字母或西里爾字母佔2個位元組,中文、日文和韓文字元佔3個位元組,emoji則佔4個位元組。JavaScript計算UTF-16程式碼單元,Python計算碼點,而使用者看到的是字素叢集,因此帶膚色的emoji對讀者來說是一個字元,卻包含兩個碼點和8個UTF-8位元組。SMS可容納GSM字母表中的160個字元;只要出現任何其他字元,容量就會變成70個字元。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。

使用次數
在瀏覽器中
費用
免費・免註冊
可用狀態
可立即使用
位元組計數器本機處理

全程在瀏覽器中執行

UTF-8位元組24網頁、檔案及大多數資料庫
UTF-16位元組26JavaScript、Java、Windows
看到的字元10字素叢集
程式碼點11Python的len()所計算的內容
JavaScript長度13UTF-16程式碼單元
單字與行3 · 1
SMS部分1UCS-2 · 每部分13/70

這些字元不在GSM字母表中,因此整則訊息會以UCS-2傳送,每部分70個字元:👍 🏽 日 本 語

包含表情符號等4位元組字元:MySQL需要使用utf8mb4字元集才能儲存這些字元;較舊的utf8(utf8mb3)字元集則不接受這些字元。

以位元組計算的限制

許多限制計算的是位元組,而不是字元:資料庫欄位和索引鍵、HTTP標頭和Cookie(每個Cookie約4 KB)、檔名(大多數檔案系統為255位元組),以及付款或訊息API。可容納255個英文字母的限制,可能只能容納85個中文字元或63個表情符號。

如要計算以字元為單位的限制,例如社群貼文,請使用字元計數器;如要了解檔案的編碼方式,請使用文字編碼偵測器。

讓SMS訊息保持簡短

將彎引號和彎撇號替換為直引號和直撇號,將破折號替換為連字號,並避免使用表情符號,讓訊息保持在GSM字元集內;如此每則可容納160個字元,而不是70個。每增加一段,通常都會按一則獨立訊息計費。

使用方式

  1. 輸入或貼上文字。
  2. 查看位元組數、字元數和SMS分段數。
  3. 輸入位元組上限,查看文字是否符合限制,並取得安全截斷的版本。

隱私與限制

文字會在您的瀏覽器中計算,絕不會上傳。

相關工具

常見問題

為什麼我的資料庫說文字太長?

欄位限制可能計算的是位元組,而不是字元:MySQL索引前綴和許多較舊的系統都使用位元組,因此255個中文字元在UTF-8中需要765個位元組。

為什麼一個emoji會讓我的SMS變成Unicode?

只有在每個字元都屬於7位元GSM字母表時,SMS才會使用該字母表;只要有一個不在其中的字元,例如emoji或彎引號,整則訊息就會切換為UCS-2,每個分段可容納70個字元,而不是160個。

長SMS會如何分段?

每段可容納153個GSM字元或67個UCS-2單元,因為每段都會攜帶標頭,讓手機能將它們重新接在一起;某些字元,例如€和[ ],在GSM中會計算為兩個字元。

免費工具・使用在瀏覽器中次・免註冊