🔣 유니코드 변환기 (\uXXXX 이스케이프 · UTF-8 바이트)
한글과 이모지를 \uXXXX, \u{X}, U+XXXX, HTML 문자 참조, UTF-8 바이트로 바꾸고 다시 글자로 되돌려요. 글자별 코드포인트·UTF-16·UTF-8 표도 보여 줘요.
사용법
- 왼쪽 칸에 글자를 넣고 글자 → 코드를 고르면 오른쪽에 선택한 형식으로 바뀐 결과가 나와요. 형식은
\uAC00(JavaScript·JSON),\u{AC00}(ES6), Python 형식,U+AC00표기, HTML 문자 참조, UTF-8 바이트 중에서 골라요. - 반대로
\uD55C\uAE00이나한처럼 이스케이프된 글을 넣고 코드 → 글자를 고르면 읽을 수 있는 글자로 되돌려 줘요. 섞어 써도 한꺼번에 풀려요. - 영문·숫자·기호는 그대로를 켜 두면 한글·이모지처럼 ASCII가 아닌 글자만 코드로 바꿔요. 끄면 영문까지 모두 바꿔요.
- 오른쪽 아래 표에는 앞 40글자의 코드포인트, UTF-16, UTF-8 값이 나와요. 입력으로 옮기기를 누르면 결과를 입력으로 가져와 바로 되돌려 확인할 수 있어요.
코드포인트와 이스케이프가 뭐예요?
유니코드는 전 세계 글자에 번호(코드포인트)를 붙인 표준이에요. 번호는 U+0000부터 U+10FFFF까지이고, 한글 '가'는 U+AC00, 영문 'A'는 U+0041, 웃는 얼굴 이모지 😀는 U+1F600이에요. 이 번호를 파일이나 네트워크에 저장하는 방법이 인코딩이고, 가장 많이 쓰는 UTF-8은 번호 크기에 따라 1~4바이트로 저장해요(RFC 3629).
소스 코드나 JSON에서는 인코딩이 맞지 않는 환경에서도 글자가 깨지지 않도록 이스케이프로 적어요. JSON 문자열은 \u 뒤에 16진수 4자리를 쓰는 방식을 정해 두었고(RFC 8259), JavaScript는 여기에 \u{1F600}처럼 중괄호로 5~6자리를 한 번에 적는 방식도 지원해요. Python은 4자리 \uXXXX와 8자리 \UXXXXXXXX를 써요.
한글과 이모지 변환 예시
| 글자 | 코드포인트 | \uXXXX | UTF-8 바이트 |
|---|---|---|---|
| A | U+0041 | \u0041 | 41 (1바이트) |
| é | U+00E9 | \u00E9 | C3 A9 (2바이트) |
| 가 | U+AC00 | \uAC00 | EA B0 80 (3바이트) |
| 한 | U+D55C | \uD55C | ED 95 9C (3바이트) |
| 글 | U+AE00 | \uAE00 | EA B8 80 (3바이트) |
| 😀 | U+1F600 | \uD83D\uDE00 (서로게이트 쌍) | F0 9F 98 80 (4바이트) |
"한글"은 JSON에서 "\uD55C\uAE00"으로 적어요. 한글 음절은 모두 U+AC00~U+D7A3 사이에 있어 16비트에 들어가므로 이스케이프도 항상 4자리 하나예요. 반면 이모지처럼 U+FFFF를 넘는 글자는 UTF-16에서 코드 유닛 2개(서로게이트 쌍)로 쪼개져서 \uD83D\uDE00처럼 두 번 적어야 해요.
서로게이트 쌍 계산법
U+10000 이상의 코드포인트는 먼저 0x10000을 빼서 20비트 값을 만들고, 위 10비트에 0xD800을, 아래 10비트에 0xDC00을 더해요. 😀(0x1F600)는 0x1F600 − 0x10000 = 0xF600이고, 위 10비트는 0x3D, 아래 10비트는 0x200이라 상위 서로게이트 0xD800 + 0x3D = 0xD83D, 하위 서로게이트 0xDC00 + 0x200 = 0xDE00이 돼요. 그래서 자바스크립트에서 '😀'.length는 1이 아니라 2예요. 글자 수를 정확히 세려면 [...str].length처럼 코드포인트 단위로 세어야 하고, 이 도구의 글자 수도 이 방식으로 세요.
어디에 쓰나요?
- JSON 응답·설정 파일에서 깨진 한글 읽기 — 서버가
"\uc548\ub155"처럼 이스케이프해 보내는 응답을 사람이 읽을 수 있게 되돌려요. JSON 포맷터와 함께 쓰면 편해요. - 소스 코드에 한글 문자열 넣기 — 인코딩이 불확실한 환경이나 .properties 파일처럼 ASCII만 허용하는 곳에서 이스케이프로 바꿔 넣어요.
- URL 인코딩과 구분하기 — URL의
%EC%95%88은 UTF-8 바이트를 퍼센트로 적은 거예요. 이 도구의 UTF-8 바이트 결과 앞에 %를 붙이면 같은 값이에요. 직접 변환은 URL 인코더를 쓰세요. - 글자 수·바이트 수 확인 — DB 컬럼이나 API가 바이트 수 제한을 둘 때, UTF-8로 한글은 글자당 3바이트라는 점을 표에서 확인해요. 글자 수 자체는 글자 수 세기에서 세요.
- 이모지 코드 찾기 — 문서나 코드에 쓸 이모지의 코드포인트와 HTML 문자 참조를 확인해요.
자주 생기는 문제
- 서로게이트 하나만 있는 경우 —
\uD83D만 있고 짝이 없으면 올바른 글자가 아니라서 화면에 깨진 글자로 보여요. 이모지는 반드시 위·아래 쌍으로 있어야 해요. - 소문자와 대문자 16진수 —
\uac00과\uAC00은 같은 글자예요. 이 도구는 둘 다 읽고 결과는 대문자로 써요. - 한글 자모(ㄱ)와 완성형 글자(가) — 'ㄱ'은 U+3131, '가'는 U+AC00으로 서로 다른 글자예요. 조합 자모(U+1100대)로 쓴 한글은 화면에는 같아 보여도 코드는 달라서 검색이나 비교에서 어긋날 수 있어요. 자모를 풀고 합치는 변환은 한글 자모 분리기를 쓰세요.
- 이스케이프 문자열이 그대로 보이는 경우 — 소스에서
"\\uAC00"처럼 역슬래시가 두 번 들어가 있으면 글자가 아니라 문자 그대로\uAC00이 출력돼요.
코드포인트와 UTF-8·UTF-16 규칙은 유니코드 표준, JSON 이스케이프는 RFC 8259, UTF-8은 RFC 3629를 따라요. 변환은 모두 이 브라우저 안에서 이루어지고 입력한 글은 밖으로 나가지 않아요.