Skip to main content
X의 게시물은 최대 280자를 포함할 수 있습니다. 그러나 모든 문자가 동일하게 계산되지는 않습니다 — 이모지, URL 및 특정 Unicode 범위에는 특별한 계산 규칙이 적용됩니다.

문자 가중치

X는 가중치가 적용된 문자 계산 시스템을 사용합니다. 대부분의 문자는 1로 계산되지만 일부는 2로 계산됩니다:
문자 유형가중치최대 글자 수
Latin, 구두점, 일반 기호1280
이모지2이모지 140개
CJK (중국어, 일본어, 한국어)2글자 140개
기타 Unicode2 (기본)다양함
오픈 소스 twitter-text 라이브러리를 사용해 앱에서 정확하게 글자 수를 계산하세요.

이모지 계산

모든 이모지는 복잡도와 관계없이 2자로 계산됩니다:
이모지표시글자 수Unicode
👾단일 이모지2U+1F47E
🙋🏽피부톤 포함2🙋 + 🏽 modifier
👨‍🎤ZWJ로 결합2👨 + ZWJ + 🎤
👨‍👩‍👧‍👦가족 시퀀스2이모지 4개 + ZWJ 3개
Zero-width joiner(ZWJ)는 이모지를 시각적으로 결합하지만 글자 수에는 추가되지 않습니다.

URL 처리

모든 URL은 t.co 단축기로 래핑되며 원래 길이와 관계없이 23자로 계산됩니다:
https://example.com                    → 23 characters
https://example.com/very/long/path     → 23 characters
이는 게시물 텍스트에서 감지된 유효한 모든 URL에 적용됩니다.

특수 케이스

콘텐츠계산 규칙
답글의 @멘션답글 시작 부분의 자동 채워진 @멘션은 계산되지 않음
신규 @멘션수동으로 추가하는 @멘션은 일반적으로 계산됨
미디어(공식 클라이언트를 통한) 첨부 미디어는 0자로 계산됨
해시태그일반적으로 계산됨(# + 태그 텍스트)

텍스트 인코딩

X API는 UTF-8 인코딩을 요구합니다. 글자 길이는 Unicode Normalization Form C (NFC)를 사용하여 계산됩니다. café의 예:
형식바이트글자 수
NFC (composed)c a f é4
NFD (decomposed)c a f e ́5
X는 NFC로 정규화하므로 두 형식 모두 4자로 인코딩됩니다.

구현

정확한 글자 수 계산을 위해 공식 twitter-text 라이브러리를 사용하세요:
import { parseTweet } from 'twitter-text';

const result = parseTweet('Hello, world! 👋');
console.log(result.weightedLength); // 16
console.log(result.valid);          // true
라이브러리는 이모지 시퀀스, URL 감지, Unicode 정규화를 포함한 모든 엣지 케이스를 처리합니다.

리소스

twitter-text 라이브러리

텍스트 파싱을 위한 공식 오픈 소스 라이브러리입니다.

구성 파일

문자 가중치 정의 및 Unicode 범위입니다.