유니코드/문자 코드 대조표
문자를 입력하면 유니코드 코드 포인트, UTF-8 바이트 시퀀스, JavaScript/HTML/URL/CSS 이스케이프 표현을 한눈에 비교할 수 있는 무료 도구입니다. 모든 처리는 브라우저 내에서 완료됩니다.
주요 문자 코드 대조표
| 문자 | 코드 포인트 | UTF-8 | 비고 |
|---|---|---|---|
| A | U+0041 | 41 | 대문자 (ASCII, 1바이트) |
| 0 | U+0030 | 30 | 숫자 (ASCII, 1바이트) |
| ␣ | U+0020 | 20 | 공백 (ASCII, 1바이트) |
| ! | U+0021 | 21 | 느낌표 (ASCII 기호, 1바이트) |
| @ | U+0040 | 40 | 골뱅이 기호 (ASCII 기호, 1바이트) |
| © | U+00A9 | C2 A9 | 저작권 기호 (Latin-1 보충, 2바이트) |
| € | U+20AC | E2 82 AC | 유로 기호 (3바이트) |
| → | U+2192 | E2 86 92 | 오른쪽 화살표 (화살표 블록, 3바이트) |
| あ | U+3042 | E3 81 82 | 히라가나 문자 (3바이트) |
| 漢 | U+6F22 | E6 BC A2 | CJK 통합 한자 (3바이트) |
| 한 | U+D55C | ED 95 9C | 한글 음절 (3바이트) |
| 😀 | U+1F600 | F0 9F 98 80 | 이모지 (BMP 밖, 4바이트, JS에서는 서로게이트 쌍으로 표현) |
이 유니코드 문자 코드 변환 도구가 하는 일
이 도구는 입력한 문자를 받아 유니코드 코드 포인트, UTF-8 바이트 시퀀스, JavaScript 이스케이프, HTML 엔티티(10진수·16진수), URL 퍼센트 인코딩, CSS 이스케이프까지 일곱 가지 코드 표현을 한 화면에서 동시에 비교해서 보여줍니다. 문자에서 코드 포인트로, 코드 포인트에서 각 바이트 표현으로 이어지는 모든 변환은 서버로 데이터를 전송하지 않고 입력하는 즉시 브라우저 안에서 계산됩니다.
알아두면 좋은 점이 하나 있습니다. 많은 이모지는 유니코드의 기본 다국어 평면(BMP, U+0000~U+FFFF) 밖에 코드 포인트가 있어서, JavaScript 문자열 내부에서는 하나가 아니라 두 개의 16비트 코드 유닛으로 이루어진 서로게이트 쌍으로 표현됩니다. 이 도구는 내부적으로 `codePointAt`을 사용해 서로게이트 쌍을 항상 하나의 올바른 코드 포인트로 되돌려 계산하므로, 이모지를 입력해도 반쪽짜리 문자 두 개가 아니라 정확한 결과를 얻을 수 있습니다. 여러 문자를 입력하면 문자마다 결과 블록이 따로 표시됩니다.
이 유니코드 변환 도구 사용법
- 조회할 문자를 입력합니다 입력란에 문자, 기호, 이모지 등을 입력합니다. 여러 문자를 한 번에 붙여넣을 수도 있습니다.
- 문자별 결과 블록을 확인합니다 입력한 문자 수만큼 결과 카드가 자동으로 나열되며, 각각 일곱 가지 코드 표현이 표시됩니다.
- 필요한 표현 행을 찾습니다 용도에 맞는 코드 포인트, UTF-8, JavaScript 이스케이프 등의 행을 찾습니다.
- 복사 버튼으로 값을 가져옵니다 각 행의 복사 버튼을 누르면 해당 값만 클립보드에 복사되어 코드에 바로 붙여넣을 수 있습니다.
- 다른 문자를 시도해 봅니다 입력란을 다시 쓰거나 "지우기" 버튼으로 비운 뒤, 다음으로 조회하고 싶은 문자를 입력합니다.
더 잘 활용하기 위한 팁
- 입력란에 여러 문자를 입력할 수 있으며, 이 경우 입력란 아래에 문자별로 결과 블록이 나뉘어 표시됩니다.
- 😀과 같은 이모지는 유니코드의 기본 다국어 평면(BMP, U+0000~U+FFFF) 밖에 있어, JavaScript 문자열 내부에서는 두 개의 코드 유닛(서로게이트 쌍)으로 표현됩니다. "JavaScript 이스케이프" 행에 `\uXXXX`가 두 개 나타나는 것은 이 때문입니다.
- CSS 이스케이프(`\41` 등)는 코드 포인트의 16진수를 접두사 없이 그대로 적으며, 뒤에 16진수로 오인될 수 있는 문자가 이어질 경우 끝에 공백을 하나 넣는 것이 안전합니다.
- 브라우저는 10진수(
A)와 16진수(A) HTML 엔티티를 동일하게 해석하므로 마크업에 편한 쪽을 선택하면 됩니다. - 각 행의 복사 버튼을 사용하면 값을 바로 클립보드에 복사해 코드나 CSS에 붙여넣을 수 있습니다.
이럴 때 활용할 수 있습니다
글자 깨짐 원인 조사
프로그램이나 데이터베이스에서 예상과 다른 문자가 표시될 때, 실제 코드 포인트와 UTF-8 바이트 시퀀스를 비교하면 인코딩 불일치가 원인인지 가려낼 수 있습니다.
이모지의 코드 포인트 조사
이모지가 서로게이트 쌍으로 몇 개의 코드 유닛이 되는지, UTF-8에서 몇 바이트를 차지하는지 실제 값을 한눈에 확인할 수 있습니다.
데이터베이스 문자 인코딩 확인
MySQL의 utf8mb4 적용 필요 여부 등, 특정 문자가 몇 바이트로 저장되는지 미리 파악하고 싶을 때 검증에 사용할 수 있습니다.
HTML·CSS에 특수 문자 삽입
기호나 외국어 문자를 HTML 엔티티나 CSS 이스케이프로 코드에 직접 적고 싶을 때, 올바른 표기를 그대로 복사해 사용할 수 있습니다.
URL 인코딩 검증
한글이나 기호가 포함된 쿼리 매개변수가 올바르게 퍼센트 인코딩되었는지 실제 변환 결과와 대조해 확인할 수 있습니다.
용어집
- 유니코드
- 전 세계 모든 문자에 고유한 번호, 즉 코드 포인트를 부여하는 국제 문자 코드 표준입니다. 언어 간 글자 깨짐을 방지하는 것을 목표로 합니다.
- 코드 포인트
- 유니코드가 각 문자에 부여한 번호로,
U+0041처럼 "U+" 뒤에 16진수로 표기합니다. 어떤 문자인지를 고유하게 나타내는 식별자입니다. - UTF-8
- 유니코드 코드 포인트를 컴퓨터에서 바이트 시퀀스로 저장하거나 전송하기 위한 대표적인 인코딩 방식입니다. 문자 하나를 1~4바이트의 가변 길이로 표현하며, ASCII와 완전히 호환되어 웹에서 널리 쓰입니다.
- UTF-16
- 유니코드 코드 포인트를 16비트 단위(코드 유닛)로 표현하는 인코딩 방식입니다. JavaScript 문자열은 내부적으로 이 방식을 사용합니다.
- 서로게이트 쌍
- UTF-16에서 기본 다국어 평면(BMP)을 넘어서는 코드 포인트를 표현하기 위해 사용하는 두 개의 코드 유닛 조합입니다. 대부분의 이모지가 여기에 해당합니다.
- BMP(기본 다국어 평면)
- 유니코드 코드 포인트 공간 중 U+0000~U+FFFF 범위를 가리킵니다. 이 범위의 문자는 UTF-16에서 코드 유닛 하나만으로 표현할 수 있습니다.
- HTML 엔티티
- HTML 문서 안에서 특수 문자를 안전하게 표기하는 방법으로,
A(10진수)나A(16진수)처럼 씁니다. - 퍼센트 인코딩
- URL에 포함할 수 없는 문자를 UTF-8 바이트 시퀀스로 변환하고, 각 바이트를
%XX형식으로 표기하는 방식입니다. 한글이 포함된 URL 등에서 사용됩니다.
자주 묻는 질문
A(10진수) 또는 A(16진수, `x` 접두사 포함) 형식으로 작성하며 HTML 마크업 안에서만 유효합니다. CSS 이스케이프는 `U+`나 `x` 접두사 없이 16진수만 적는 `\41` 형식으로 작성하며 CSS 선택자나 속성 값 안에서 사용합니다. 사용하는 맥락에 맞는 올바른 형식을 선택해야 합니다.
여담 ― 뿔뿔이 흩어진 문자 코드를 통일한 유니코드
유니코드가 등장하기 전, 컴퓨터의 문자 코드는 국가와 언어마다 제각각이었습니다. 일본어 텍스트만 하더라도 Shift_JIS, EUC-JP, JIS 코드 등 여러 방식이 공존했고, 서로 다른 인코딩을 쓰는 시스템 간에 텍스트를 주고받으면 글자가 깨지는 일이 자주 일어났습니다. 1991년 공개된 유니코드 1.0은 전 세계에서 사용되는 모든 문자에 단일한 번호(코드 포인트)를 부여함으로써 이런 혼란을 해소하고자 했습니다.
유니코드와 국제 표준인 ISO/IEC 10646은 처음에는 어느 정도 독립적으로 개발되었지만, 이후 서로 협력하여 동일한 문자 목록과 코드 포인트 할당을 공유하게 되었습니다. 오늘날 유니코드는 이모지를 포함해 15만 자가 넘는 문자를 수록하고 있으며, 매년 새 버전이 공개되어 문자가 계속 추가되고 있습니다.
UTF-8은 1992년 켄 톰프슨(Ken Thompson)과 롭 파이크(Rob Pike)가 설계한 인코딩 방식으로, ASCII 텍스트와 완전한 하위 호환성을 유지하면서도 모든 유니코드 문자를 표현할 수 있다는 점이 획기적이었습니다. 이 설계 덕분에 UTF-8은 웹 문서 인코딩의 사실상 표준으로 자리 잡았습니다.