onlinetools.dev

유니코드 문자 인스펙터

문자별 코드 포인트, UTF-8/UTF-16 바이트, 이스케이프 표기 확인

로컬 실행
loading…
이 도구에 대해

아무 텍스트나 붙여넣으면 각 문자가 해부됩니다. 코드 포인트(U+XXXX), UTF-8 바이트, UTF-16 단위, JavaScript 이스케이프 시퀀스, HTML 엔티티, 일반 카테고리, 그리고 코드 포인트, UTF-16 단위, UTF-8 바이트, 사용자가 인지하는 문자(자소 클러스터)의 총계까지.

"이 문자열이 왜 이상하지?" 하는 순간을 위한 도구입니다. 보이지 않는 문자(제로 폭 공백, BOM, 방향 표시)가 보이는 행으로 드러나고, 닮은꼴 문자(키릴 а 대 라틴 a)는 서로 다른 코드 포인트를 드러내며, "한 글자"인 줄 알았던 이모지가 알고 보니 제로 폭 결합자로 이어진 일곱 개의 코드 포인트로 밝혀집니다.

네 가지 서로 다른 길이 총계는 JavaScript의 .length, 데이터베이스 바이트 제한, 사용자 눈에 보이는 길이가 문자열 길이에 대해 왜 늘 제각각인지라는 오랜 질문에 답해 줍니다.

자주 묻는 질문

왜 JavaScript에서 "🎉".length === 2 인가요?
JavaScript 문자열은 UTF-16 코드 유닛을 셉니다. 대부분의 이모지를 포함해 U+FFFF를 넘는 문자는 서로게이트 쌍, 즉 두 유닛이 필요합니다. 검사기는 두 유닛과 실제 코드 포인트를 모두 보여주고, 요약에서 따로 계산합니다.
자소 클러스터란 무엇인가요?
읽는 사람이 한 글자로 인지하는 것입니다. é 는 코드 포인트 두 개(e + 결합 악센트)일 수 있고, 가족 이모지는 제로 폭 결합자로 이어진 일곱 개 이상일 수 있습니다. 자소 계산은 브라우저의 Intl.Segmenter를 사용하는데, "사용자가 보는 대로의 문자"에 가장 가까운 것입니다.
문자열 속 보이지 않는 문자를 어떻게 찾나요?
여기에 붙여넣으세요. 제로 폭 공백(U+200B), 줄바꿈 없는 공백(U+00A0), BOM(U+FEFF), 방향 표시를 포함해 모든 코드 포인트가 카테고리 라벨과 함께 한 행씩 표시됩니다. 이들이 바로 "동일해 보이는" 문자열이 동등성 검사에 실패하게 만드는 고전적인 범인들입니다.
UTF-8 바이트 시퀀스는 무엇을 알려주나요?
저장되거나 전송될 바로 그 내용입니다. ASCII는 1바이트, 대부분의 라틴 확장은 2바이트, CJK는 3바이트, 이모지는 4바이트입니다. 시스템이 시퀀스 중간에서 자르면 대체 문자(�)가 나타납니다. 바이트 뷰는 그런 절단이 어디에 떨어질지 보여줍니다.
관련 도구