Character Limits by Platform — Twitter, Instagram, SMS, and More

By Jeff · Published Apr 1, 2026 · Updated Apr 30, 2026

Character limits are one of those things that feel obvious until they are not. SMS messages that arrive split in two. Tweets that get cut off at 280 characters when you're writing in English but feel generous in Korean. A YouTube title that looks fine in the upload form but gets truncated in search results.

Here is a complete reference for the limits that matter most, plus an explanation of why Korean text behaves differently in systems that count bytes rather than characters.

Platform character limits — complete reference

PlatformLimitNotes
Twitter / X post280Korean counts as 1 char (same as English)
Instagram caption2,200Only ~125 chars show without tapping "more"
Instagram bio150Always visible without expanding
Instagram username30Letters, numbers, periods, underscores only
SMS (English)160GSM-7 encoding; 153/segment if multi-part
SMS (Korean)~70UCS-2 encoding; carrier-dependent
YouTube title100~70 chars shown in search results
YouTube description5,000~157 chars in search snippet
Facebook post63,206Truncated after ~400 chars without expanding
KakaoTalk message10,000Long messages split automatically
SEO meta title~60 charsGoogle shows ~600 px width (fewer Korean chars fit)
SEO meta description~155 charsTruncated with ellipsis if longer

Characters vs bytes — why Korean text behaves differently

When a limit is measured in characters, Korean and English are usually equivalent (each counts as 1). Twitter works this way — a Korean tweet has the same 280-character allowance as an English one.

But when a limit is measured in bytes, Korean text takes up 3× the space of English text in UTF-8 encoding:

  • English letters, numbers, basic punctuation = 1 byte each
  • Korean, Chinese, Japanese characters = 3 bytes each
  • Emoji = 4 bytes each

This matters most in two places:

SMS messages

English SMS uses GSM-7 encoding (160 chars/message). Korean SMS uses UCS-2 encoding, which allows only ~70 characters per message. This is why a Korean text message sometimes arrives split in two, or why you get charged for two messages.

Database VARCHAR columns

A VARCHAR(255) column stores 255 bytes — which holds 255 English characters but only ~85 Korean characters. This trips up developers building bilingual systems.

Hashtags, URLs, and emojis — how they count

  • Twitter hashtags: Count toward your 280-character limit. #Hello is 6 characters. Multiple long hashtags eat significantly into your writing space.
  • Twitter URLs: Always counted as exactly 23 characters regardless of actual length — Twitter wraps all URLs in its own shortener (t.co). A URL copied from the address bar is always 23 chars in the counter.
  • Instagram hashtags: Do not count against the 2,200-character caption limit if added as a separate comment. Many creators add captions first, then post hashtags in a comment to keep captions clean.
  • Emoji: Most single emoji count as 1–2 characters in Twitter's counter. In byte-based systems, emoji are 4 bytes each, which means they can quickly eat a byte limit.

Practical tips for working with limits

  • For YouTube titles: Put your most important keyword in the first 60–70 characters. Search results truncate the rest. The full title is still shown on the video page, so you can add context after the critical part.
  • For SEO meta descriptions: Write for humans first, not for the character limit. A cut-off description looks awkward. Aim for 140–155 characters so it fits cleanly. Korean text fits fewer characters per line in Google's display, so trim more aggressively for Korean titles.
  • For SMS campaigns: If your message includes Korean text, write it separately and count in a tool that shows byte count. Exceeding 70 Korean characters means recipients get a split message, which looks unprofessional.
  • For database fields: If your application handles Korean input, calculate storage requirements in bytes, not characters. A 255-character VARCHAR meant for Korean content should ideally be VARCHAR(765) in byte-based systems.

Check your text length — characters and bytes — in real time.

Use the Character Counter Tool