Skip to content

유니코드 이스케이프 변환기

\uXXXX, U+ 코드 포인트, UTF-8 바이트를 붙여넣으면 자동 인식해 텍스트로 디코딩하고, 모든 표기를 한 번에 보여 줍니다. 브라우저에서만 실행, 업로드 없음.

트래킹 없음 브라우저 실행 무료

모든 처리는 브라우저에서 실행됩니다. 입력은 업로드되지도, 기록되지도, 저장되지도 않습니다.

0 문자
읽을 수 있는 텍스트
결과가 여기에 표시됩니다
정규화
모든 표기를 한 번에
JavaScript / Java / JSON uXXXX
ES6 u{XXXXX}
Python uXXXX / UXXXXXXXX
Go uXXXX / UXXXXXXXX
Rust u{XXXXX}
코드 포인트 U+XXXX
HTML 10진수 &#NNNNN;
HTML 16진수 &#xXXXX;
URL 인코딩 %XX
CSS XXXXXX
UTF-8 바이트 hex
UTF-16 코드 단위 hex
UTF-32 hex
8진수 바이트 NNN
10진수 코드 포인트 NNNNN
문자별로 보기
문자 코드 포인트 UTF-8 UTF-16 문자 체계 분류 이름
결과가 여기에 표시됩니다

빠른 참조

문자 코드 포인트 JavaScript / Java / JSON UTF-8 바이트 URL 인코딩 HTML 10진수
中文 U+4E2D U+6587 \u4E2D\u6587 E4 B8 AD E6 96 87 %E4%B8%AD%E6%96%87 中文
😀 U+1F600 \uD83D\uDE00 F0 9F 98 80 %F0%9F%98%80 😀
A U+0041 A 41 A A
U+3000 U+3000 \u3000 E3 80 80 %E3%80%80  
참조 표의 모든 변환 결과는 발행 전에 서로 독립적인 두 구현으로 교차 확인했습니다. — Go Tools 엔지니어링 팀 · Aug 27, 2026

문서를 보고 추정하지 않고 Node, Python, Java, Go와 실제 브라우저 엔진에서 동작을 검증했습니다.

유니코드 이스케이프란?

유니코드 이스케이프는 문자를 ASCII만으로 적는 방식이라, 문자 자체를 실어 나르지 못하는 시스템도 통과합니다. 같은 문자라도 이스케이프 형태는 언어마다 거의 다릅니다. JavaScript와 JSON은 UTF-16 코드 단위마다 16진수 네 자리를 쓰고, ES6와 Rust는 중괄호 안에 코드 포인트 전체를 담습니다. Python과 Go에는 여덟 자리짜리 넓은 형태가 따로 있고, CSS는 백슬래시 하나로 시작하며, HTML에는 자체 숫자 참조와 이름 참조가 있습니다. 전부 같은 코드 포인트를 가리킵니다. 문자열 하나가 예닐곱 가지 모습으로 눈앞에 도착하는 이유가 여기에 있습니다.

中文
  U+4E2D U+6587         code point
  \u4E2D\u6587          JavaScript / Java / JSON
  \u{4E2D}\u{6587}      ES6 / Rust
  E4 B8 AD E6 96 87     UTF-8
  %E4%B8%AD%E6%96%87    URL
  中文      HTML

이 변환기가 하는 일

어떤 표기인지 알아서 판단

이스케이프, 중괄호, 넓은 이스케이프, 코드 포인트, 엔티티, 퍼센트 인코딩, 바이트 나열을 모드 전환 없이 인식합니다.

섞인 입력도 망가뜨리지 않음

인코딩된 부분만 바뀝니다. JSON 문장 부호, Windows 경로, 이미 이스케이프된 백슬래시는 그대로 둡니다.

모든 표기를 한 번에

한 번 붙여넣으면 대조표 전체가 나오므로 한 언어에서 다른 언어로 옮기려고 두 번 변환할 일이 없습니다.

언어별로 맞는 형태

BMP 밖 문자는 Python과 Go용으로 넓은 이스케이프로 출력합니다. 그 두 언어에서는 서로게이트 쌍이 실패합니다.

문자 단위까지 분해

문자마다 코드 포인트, UTF-8과 UTF-16 바이트, 문자 체계, 분류를 보여 주고, 유니코드 이름이 정해져 있는 문자는 이름까지 알려 줍니다.

보이지 않는 문자를 드러냄

BOM, 제로 폭 결합자, 줄 바꿈 없는 공백에 눈에 보이는 대체 기호를 붙입니다.

예시

로그 한 줄을 통째로 붙여넣어도 나머지는 그대로

{"msg":"\u4e2d\u6587 failed","code":500}
{"msg":"中文 failed","code":500}

이스케이프 시퀀스만 바뀝니다. 따옴표, 키 이름, 숫자는 원래 모습 그대로 남으므로 이스케이프만 손으로 골라내지 않고 로그 줄 전체를 붙여넣을 수 있습니다. 대부분의 경쟁 도구는 순수한 이스케이프 문자열만 인식합니다.

한 번 붙여넣기에 네 가지 표기가 섞여 있어도

U+4E2D  \u{1F600}  中  \ud83d\ude00
中  😀  中  😀

코드 포인트 표기, ES6 중괄호, HTML 엔티티, 서로게이트 쌍이 한 번에 모두 디코딩됩니다. 미리 모드를 고르거나 설정할 필요가 없습니다.

문자 하나를 언어별 표기로

\u4E2D        JavaScript / Java / JSON
\u{4E2D}      ES6 / Rust
U+4E2D        code point
E4 B8 AD      UTF-8
\344\270\255  octal

같은 문자를 각 언어가 기대하는 형태로 나열합니다. Python과 Go는 BMP 밖 문자에 여덟 자리 넓은 이스케이프가 필요합니다. 서로게이트 쌍으로 쓰면 Go는 컴파일되지 않고 Python은 UnicodeEncodeError를 냅니다.

사용 방법

  1. 1

    붙여넣기

    이스케이프, 코드 포인트, 엔티티, 인코딩된 바이트, 평문 무엇이든 됩니다. 어느 쪽인지 미리 알려 줄 필요가 없습니다.

  2. 2

    결과 확인

    읽을 수 있는 텍스트가 곧바로 나타나고, 어떤 표기를 인식했는지도 함께 표시됩니다.

  3. 3

    필요한 표기 복사

    결과 아래에 모든 표기가 나열되며 줄마다 복사 버튼이 따로 있습니다.

  4. 4

    이상하면 더 파고들기

    문자별 표를 펼쳐 코드 포인트, 바이트, 문자 체계, 이름을 확인하고 '보이지 않는 문자 표시'를 켜서 숨은 문자를 드러내십시오.

알아 둘 만한 실수

넓은 이스케이프가 필요한 자리에 서로게이트 쌍을 씀

JSON에서는 멀쩡하던 쌍이 Python에서는 깨진 반쪽 두 개가 되고 Go에서는 아예 컴파일되지 않습니다. U+FFFF보다 큰 문자에는 여덟 자리 넓은 형태를 쓰십시오.

✗ 오류
\ud83d\ude00
✓ 정상
\U0001F600

HTML 숫자 참조를 순수한 코드 포인트로 디코딩

128과 159 사이의 참조는 windows-1252를 거쳐 읽어야 합니다. 단순한 구현은 오른쪽 작은따옴표를 보이지 않는 제어 문자로 바꿔 버립니다. 오래된 시스템이 내보낸 파일에서 그 자리만 아무것도 보이지 않는 이유가 이것입니다.

✗ 오류
’  ->  U+0092
✓ 정상
’  ->  U+2019

16진수 문자 앞에 짧은 CSS 이스케이프를 씀

파서가 16진수 자리를 계속 먹어 들어가서 이스케이프와 다음 문자가 하나의 잘못된 코드 포인트로 합쳐집니다. 여섯 자리로 채우십시오.

✗ 오류
\4E2Da
✓ 정상
\004E2Da

언제 필요한가

로그 읽기
서버 로그와 API 응답은 비-ASCII 문자를 이스케이프한 채로 도착하는 일이 흔합니다. 줄을 그대로 붙여넣고 편집 없이 읽으십시오.
언어 사이로 문자열 옮기기
서로게이트 쌍과 넓은 이스케이프 사이를 손으로 환산하지 말고, 대상 언어가 받아들이는 형태 그대로 복사하십시오.
인코딩 버그 추적
비교가 실패하거나 데이터베이스가 값을 거부할 때, 문자별 표가 어떤 코드 포인트와 바이트가 얽혀 있는지 정확히 보여 줍니다.
붙여넣은 내용 정리
웹 페이지나 문서에서 복사한 텍스트에는 보이지 않는 문자가 딸려 오는 일이 잦습니다. 운영 환경에 닿기 전에 찾아내십시오.

기술 세부사항

이스케이프 대상은 문자가 아니라 코드 단위
JavaScript, Java, JSON은 UTF-16 코드 단위를 이스케이프하므로 U+FFFF보다 큰 문자에는 이스케이프가 두 개 필요합니다. Python과 Go에는 코드 포인트를 그대로 담는 여덟 자리 형태가 따로 있습니다.
HTML 숫자 참조는 windows-1252로 재매핑됩니다
HTML 명세는 128부터 159까지의 숫자 참조를 코드 포인트가 아니라 windows-1252를 거쳐 읽도록 요구합니다. 그래서 146번 참조는 보이지 않는 제어 문자가 아니라 오른쪽 작은따옴표입니다.
CSS 이스케이프에는 자리 채움이 필요합니다
CSS 이스케이프는 16진수를 최대 여섯 자리까지 먹으므로, 짧은 이스케이프 뒤에 16진수 문자가 오면 하나의 잘못된 코드 포인트로 합쳐집니다. 여섯 자리로 채우면 모호함이 사라지고, 뒤따르는 공백 하나는 종료 표시로 소모됩니다.
짝 없는 서로게이트는 곳마다 결말이 다릅니다
짝 없는 서로게이트는 JSON 직렬화에서는 보존되고, TextEncoder에서는 조용히 대체되며, 퍼센트 인코딩에서는 거부되고, Java에서는 물음표로 쓰이며, Python에서는 예외를 발생시킵니다.

모범 사례

비교하기 전에 정규화
비교하거나 중복을 제거하기 전에 양쪽을 같은 정규화 형식으로 접으십시오. 이름과 식별자라면 특히 그렇습니다.
Python과 Go에는 넓은 형태를
서로게이트 쌍은 JSON에서는 유효하지만 이 두 언어에서는 깨집니다. 대상이 Python이나 Go 소스라면 여덟 자리 이스케이프를 쓰십시오.
보이지 않는 문자는 일찍 확인
나중에 불일치를 디버깅하지 말고 입력 경계에서 붙여넣은 값을 검증하십시오.
원본 값을 남겨 두기
대체 문자가 한 번 등장하면 디코딩은 더 이상 무손실로 되돌릴 수 없습니다. 확신이 설 때까지 원시 값을 보관하십시오.

자주 묻는 질문

\u4e2d\u6587은 무슨 뜻이고 어떻게 읽나요?
\uXXXX 하나는 UTF-16 코드 단위 하나를 16진수로 적은 것입니다. \u4e2d는 U+4E2D이고 \u6587은 U+6587이며, 합치면 중국어 낱말 하나가 됩니다. 위 입력창에 문자열 전체를 붙여넣으면 읽을 수 있는 텍스트가 나오고, 주변의 JSON이나 로그 텍스트는 손대지 않고 그대로 보존됩니다.
백슬래시가 사라지고 u4e2d만 남았는데 그래도 변환되나요?
됩니다. 터미널과 로그 파이프라인은 백슬래시를 자주 삼킵니다. 이어 붙은 u4e2du6587도 인식해서 디코딩하고, 우연히 u가 들어 있을 뿐인 평범한 단어는 건드리지 않습니다. 대부분의 온라인 도구가 이런 입력은 그대로 되돌려 보냅니다.
이모지 하나가 왜 \u 이스케이프 두 개로 쓰이나요?
U+FFFF보다 큰 문자는 UTF-16 코드 단위 하나에 들어가지 않기 때문에 JavaScript, Java, JSON은 서로게이트 쌍으로 적습니다. 활짝 웃는 얼굴 이모지 하나는 코드 포인트 1개, UTF-16 코드 단위 2개, UTF-8 바이트 4개입니다. 이 세 숫자는 문자별 표에서 모두 확인할 수 있습니다.
반대로 한글을 유니코드 이스케이프로 변환하려면 어떻게 하나요?
평문을 입력하거나 붙여넣고 결과 아래 대조표를 보십시오. 모든 표기가 한꺼번에 나오므로 쓰는 언어가 기대하는 형태를 그대로 복사하면 되고, 형식 하나 때문에 두 번 변환할 일이 없습니다.
두 문자열이 똑같아 보이는데 코드에서는 다르다고 합니다. 왜 그런가요?
정규화 형식이 서로 다를 가능성이 큽니다. 악센트가 붙은 글자는 코드 포인트 하나로 적을 수도 있고 기본 글자에 결합 문자를 더해 적을 수도 있습니다. 둘 다 똑같이 렌더링되지만 같지는 않습니다. NFC 버튼으로 양쪽을 같은 형식으로 접으십시오. 정규화가 한중일 문자에는 아무 일도 하지 않는다고 생각하기 쉬운데 그렇지 않습니다. 호환용 한자 U+F900은 일반 NFC를 거치면 U+8C48로 바뀝니다.
문자열에 보이지 않는 무언가가 섞여서 코드가 깨집니다. 어떻게 찾나요?
'보이지 않는 문자 표시'를 켜십시오. BOM, 제로 폭 공백, 줄 바꿈 없는 공백, 변형 선택자에 눈에 보이는 대체 기호가 붙고, 문자별 표가 각각의 이름과 바이트를 알려 줍니다. 웹 페이지나 문서에서 복사해 붙여넣을 때 이런 문자가 가장 잘 딸려 옵니다.
입력한 데이터가 어딘가로 업로드되나요?
아닙니다. 변환은 브라우저 안에서 이루어지고 네트워크 요청이 전혀 없습니다. 업로드도, 기록도, 저장도 하지 않으므로 운영 환경 로그를 붙여넣어도 안전합니다.

Base64 디코더 · 인코더 (Base64 Decoder & Encoder)

인코딩 & 포매팅

Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.

Base64 이미지 변환기 (온라인)

인코딩 & 포매팅

Base64 문자열이나 데이터 URI를 온라인 브라우저에서 이미지로 디코딩합니다. 미리보고, 치수와 MIME을 읽은 뒤 PNG, JPG, GIF, SVG로 다운로드하세요. 업로드 없음.

CSV to JSON 변환기 (CSV to JSON Converter)

인코딩 & 포매팅

브라우저에서 CSV를 JSON으로 변환합니다. RFC 4180, 타입 추론, 헤더 행, 큰 정수 안전 처리. 100% 비공개, 업로드 없음.

.env을 JSON으로 변환하는 도구

인코딩 & 포매팅

.env 파일을 붙여넣으면 즉시 JSON으로 변환됩니다. 데이터베이스 비밀번호, API 키, 토큰이 브라우저를 절대 벗어나지 않는 100% 비공개 무료 온라인 dotenv 파서입니다.

무료 HTML 엔티티 디코더 — HTML 언이스케이프

인코딩 & 포매팅

온라인에서 HTML 엔티티를 디코딩하고 HTML을 언이스케이프하세요. 무료, 가입 불필요, 100% 브라우저에서 처리. 이름·10진수·16진수 참조를 문자로 되돌리며 업로드 없음.

무료 HTML 엔티티 인코더 — HTML 이스케이프

인코딩 & 포매팅

온라인에서 HTML 엔티티를 인코딩하고 특수문자(< > & " ')를 이스케이프하세요. 무료, 100% 브라우저에서 처리. 이름·10진수·16진수 출력, 업로드 없음.