자르기 전에 확인

보이는 길이와 인코딩 길이를 비교

대화형 작업 공간은 그래핀 클러스터, 코드 포인트, UTF-16 코드 유닛, 엄격한 UTF-8 바이트를 계산합니다. 사용자 지정 그래핀 제한을 추가해 잔여 허용량이나 초과분을 확인하세요.

글자 수 카운터를 불러오는 중…

텍스트를 분석하려면 JavaScript를 활성화하세요. 아래의 유니코드 길이 정의, 예시, 제한 안내는 그대로 제공됩니다.

하나의 문자열, 네 가지 길이

그래핀·코드 포인트·코드 유닛·바이트를 의도적으로 선택

사람은 "글자 수 제한"이 보이는 단위를 따르기를 기대합니다. 악센트가 붙은 글자나 결합된 이모지가 조각나서는 안 됩니다. 유니코드는 여기서 사용하는 실용적인 경계를 확장 그래핀 클러스터라고 부릅니다. 이는 사용자가 인지하는 문자의 근사이며, 모든 글꼴·언어·편집 작업이 모든 시퀀스를 똑같이 다루겠다는 보장이 아닙니다.

코드 포인트는 U+0065, U+1F600처럼 표기되는 유니코드 부호 공간의 값입니다. ECMAScript 문자열은 세 번째 층인 16비트 코드 유닛의 나열을 노출합니다. U+FFFF를 넘는 코드 포인트는 서러게이트 페어를 차지하므로 "😀".length가 2입니다. 파일과 네트워크 페이로드는 문자열이 UTF-8 바이트로 인코딩될 때 네 번째 층을 추가합니다.

이 카운터가 네 층을 모두 표시하는 이유는 제한이 곧 계약이기 때문입니다. 바이트 단위 데이터베이스 컬럼, UTF-16 유닛 기준 JavaScript API, 보이는 그래핀 기준 제품 필드는 같은 텍스트를 서로 다른 양만큼 수용합니다. 단위와 정규화 정책이 명명되기 전까지 "500글자"라는 표기는 불완전합니다.

그래핀 클러스터
보이는 문자를 근사하는 지역 인식 확장 경계.
코드 포인트
코드 포인트 반복으로 얻는 유니코드 부호 값.
UTF-16 코드 유닛
JavaScript 문자열 길이가 세는 16비트 요소.
UTF-8 바이트
모든 스칼라 값이 유효할 때의 엄격한 인코딩 길이.
사용자 지정 제한
잔여·초과 상태가 표시되는 그래핀 허용량.

작은 예시가 층을 드러냅니다

같은 보이는 길이도 저장 공간은 다를 수 있습니다

텍스트와 표현그래핀 · 포인트 · 유닛UTF-8 바이트
é · U+00E91 · 1 · 12바이트: C3 A9
é · U+0065 U+03011 · 2 · 23바이트: 65 CC 81
😀 · U+1F6001 · 1 · 24바이트: F0 9F 98 80
👨‍👩‍👧‍👦 · 결합된 가족1 · 7 · 1125 UTF-8 바이트

첫 두 행은 보통 같은 악센트 글자로 렌더링됩니다. 이 카운터는 의도적으로 정규화하지 않으므로 두 입력의 내부 길이는 구분됩니다. 가족 이모지 시퀀스는 네 개의 이모지와 세 개의 ZWJ로 구성되며, 구성 코드 포인트를 각각 지울 수 있는 "글자"로 취급하면 눈으로 봐도 깨진 결과가 남을 수 있습니다.

유니코드 경계 알고리즘

그래핀 경계는 현재 분할 데이터에 따라 달라집니다

그래핀 총계는 그래핀 단위의 Intl.Segmenter를 사용합니다. 이 API는 지역 협상과 구현체의 유니코드 경계 데이터를 따릅니다. Unicode Standard Annex #29는 결합 기호, 이모지 수정자, 지역 표시기, ZWJ 시퀀스의 동작을 포함한 기본 확장 그래핀 클러스터 규칙을 정의하고, ECMA-402는 JavaScript 분할 인터페이스를 정의합니다.

경계 동작은 브라우저와 무관하게 고정되지 않습니다. 더 새로운 엔진은 갱신된 유니코드 속성이나 지역 맞춤을 반영할 수 있고, 특수 편집기는 기본 알고리즘 위에 도메인별 규칙을 적용할 수 있습니다. 제한 판단을 정확히 감사해야 한다면 원본 텍스트를 보존하고 실행 환경을 기록하세요.

그래핀 개수는 커서 이동과 사용자 대상 제한을 위한 것이지만 시각적 폭은 측정하지 않습니다. 하나의 클러스터는 좁을 수도, 넓을 수도, 보이지 않을 수도 있고, 글리프 누락 상자로 그려지거나 이웃과 결합될 수 있습니다. 레이아웃 제한에는 문자열 분할 외에 글꼴·렌더링 측정이 필요합니다.

편집 분량을 세고 싶으신가요?

그래핀은 보이는 문자의 질문에 답합니다. 단어와 문장에는 지역 인식 단어·문장 경계 규칙과 별도의 단락·줄 정의가 필요합니다.

단어 수 세기 열기 →

받는 쪽의 계약에 맞추기

보이는 문자 정책에는 사용자 지정 그래핀 제한을

  1. 1

    단위를 명명하세요

    받는 쪽이 그래핀, 코드 포인트, UTF-16 코드 유닛, 인코딩 바이트 중 무엇을 제한하는지 확인하세요. "글자"라는 단어에서 추측하지 마세요.

  2. 2

    허용량을 설정하세요

    사용자 지정 그래핀 제한을 입력해 남은 보이는 클러스터 수나 현재 텍스트의 초과분을 추적합니다.

  3. 3

    안전하게 자르세요

    계약이 그래핀이라면 그래핀 경계에서만 자르세요. 전송·저장에 별도의 바이트 상한이 있다면 이후 바이트를 다시 확인하세요.

사용자 지정 제한은 텍스트 영역 값을 받은 뒤 다시 쓰거나 잘라내거나 유니코드 정규화를 적용하지 않습니다. 텍스트 영역 HTML 동작은 분석 전에 CRLF와 CR을 LF로 바꿉니다. 다른 정규화를 적용하거나 제어 문자를 제거하거나 다른 유니코드 버전을 세는 서비스는 다른 결과를 낼 수 있으니 실제 대상에서 대표적인 이모지와 결합 시퀀스를 테스트하세요.

정확한 입력, 엄격한 인코딩

정규화와 고아 서러게이트는 바이트 질문을 바꿉니다

텍스트 영역 값에는 NFC, NFD, NFKC, NFKD 변환이 적용되지 않습니다. 텍스트 영역 HTML 동작이 이미 CRLF와 CR을 LF로 바꿨으므로 소스와 바이트 단위로 비교하려면 이 변환을 고려해야 합니다. 유니코드 정규화는 소비하는 프로토콜이 명시된 형식을 요구할 때만 수행하세요. 서명, 해시, 데이터베이스 키, 바이트 계약은 각자의 규칙을 따릅니다.

평범하게 입력한 대부분의 텍스트는 유니코드 스칼라 값으로 구성되지만, JavaScript 문자열은 홀로 남은 상위·하위 서러게이트를 포함할 수 있습니다. ECMAScript String 타입은 well-formed UTF-16이 아닌 16비트 값 나열을 허용합니다. 고아 서러게이트는 UTF-16 코드 유닛 수는 있지만 유니코드 스칼라 값으로서의 직접적인 UTF-8 인코딩은 없습니다.

웹의 WHATWG TextEncoder는 USVString을 받아들여 UTF-8 인코딩 전에 고아 서러게이트를 U+FFFD로 바꿉니다. 이 치환은 상호운용에 유용하지만, 그 3바이트는 원본 코드 유닛을 보존한 인코딩이 아닙니다. 그래서 이 카운터는 UTF-8 바이트 길이를 사용 불가능으로 처리하고 치환 기반 총계를 조용히 쓰는 대신 잘못된 입력을 보고합니다.

텍스트를 바이트까지 추적

ASCII, 유니코드, UTF-8, UTF-16, 그래핀, 16진수 표기는 관련되어 있지만 별개의 층입니다.

ASCII vs Unicode vs UTF-8 읽기 →

로컬 검사

카운팅 API 요청 없이 텍스트 측정

계산은 이 브라우저 탭에서 실행됩니다. LiveParse는 입력한 문자열을 글자 수 세기 서비스에 올리거나 서버 측 이력을 저장하지 않습니다. 초안 문구, 식별자, 예시 페이로드의 노출을 줄입니다.

로컬 처리가 고립된 기기를 의미하지는 않습니다. 브라우저 확장, 클립보드 도구, 접근성 소프트웨어, 스크린샷, 오류 보고, 운영체제는 이 페이지의 통제 밖에 있습니다. 측정이 필요 없는 비밀 값은 제거하고 기기에 적용되는 데이터 처리 규정을 따르세요.

단어 수와 읽기 시간이 필요하신가요?

지역 인식 단어·문장 분할, 단락·줄 계산, 조정 가능한 속도 추정으로 전환하세요.

단어·문장 세기 →

질문과 답

글자 수 세기 FAQ

이 도구에서 글자 수는 무엇을 의미하나요?

기본 글자 수는 사용자가 인지하는 문자를 근사하는 그래핀 클러스터 개수입니다. 유니코드 코드 포인트, JavaScript UTF-16 코드 유닛, UTF-8 바이트도 함께 표시해 플랫폼의 정확한 단위에 맞출 수 있습니다.

하나의 이모지가 여러 코드 포인트로 계산되는 이유는?

하나의 그래핀으로 보이는 이모지는 사람, 피부톤 수정자, 변형 선택자, 지역 표시기, ZWJ를 포함하는 시퀀스일 수 있습니다. 그래핀 분할은 이런 시퀀스를 하나로 유지하고 코드 포인트 계산은 구성 요소를 드러냅니다.

코드 포인트와 UTF-16 코드 유닛의 차이는?

코드 포인트는 유니코드 부호 값입니다. UTF-16 코드 유닛은 ECMAScript 문자열의 16비트 값 하나이며, U+FFFF를 넘는 코드 포인트는 서러게이트 페어로 두 유닛을 차지합니다.

짝이 없는 서러게이트는 어떻게 처리되나요?

짝이 없는 UTF-16 서러게이트는 유니코드 스칼라 값이 아닙니다. 치환 문자의 바이트를 조용히 세는 대신 엄격한 UTF-8 바이트 결과를 사용 불가능으로 표시하고 잘못된 문자열을 알립니다.

유니코드 텍스트를 정규화하나요?

아니요. 텍스트 영역 값에는 유니코드 정규화를 적용하지 않습니다. 미리 합쳐진 악센트 문자와 베이스+결합 기호 시퀀스는 구별되게 유지됩니다. 텍스트 영역 HTML 동작은 분석 전에 CRLF와 CR을 LF로 바꾸며 이는 코드 유닛·바이트 총계를 바꿀 수 있습니다.

사용자 지정 제한은 바이트 기준인가요?

아니요. 사용자 지정 제한은 그래핀 클러스터를 추적하며 잔여·초과를 표시합니다. 서비스 제한이 코드 포인트, UTF-16 유닛, UTF-8 바이트 기준이라면 해당 지표와 비교하세요.