인코딩

Unicode Escape

Unicode 이스케이프 시퀀스 인코딩 및 디코딩 — 문자를 \uXXXX 형식으로, 또는 그 반대로 변환.

A Unicode escape sequence (\uXXXX) writes a character as its code point instead of the character itself — so a string literal in code can contain any Unicode character while the source file itself stays plain ASCII.

How to use it

Common uses

Things to keep in mind

\uXXXX encodes exactly one 16-bit UTF-16 unit, not one visible character — characters outside the Basic Multilingual Plane (most emoji) need two such sequences together (a surrogate pair).

JSON only requires escaping for control characters and a few special characters — escaping every character as \uXXXX isn't required, though it is valid.

이 도구에 대한 아티클: Unicode Escape: \uXXXX 시퀀스의 의미

자주 묻는 질문

\uXXXX 형식은 무엇을 나타내나요?

\u 뒤에 4자리 16진수를 붙여 유니코드 문자 하나를 표현하는 이스케이프 표기법으로, JavaScript 문자열이나 JSON에서 특수 문자·비 ASCII 문자를 코드로 표현할 때 사용합니다.

이모지 같은 문자는 왜 \uXXXX 두 개로 나오나요?

기본 다국어 평면(BMP) 밖에 있는 이모지 등의 문자는 \uXXXX 하나로 표현할 수 없어서 서로게이트 페어라는 두 개의 코드 유닛(상위·하위 서로게이트)로 쪼개져 표현됩니다. 이는 JavaScript 문자열 내부 표현 방식과 동일합니다.

입력한 텍스트가 외부로 전송되나요?

아니요. 인코딩과 디코딩 모두 브라우저 안에서만 처리되며 서버로 전송되는 데이터는 없습니다.

서로게이트 쌍을 반으로 나누면 어떻게 되나요?

짝을 잃은, 유효하지 않은 "고아" 문자가 됩니다. 대부분의 파서는 이런 문자열을 오류로 거부하거나 대체 문자 "�"로 표시합니다.

이모지 문자를 \uXXXX 하나로 인코딩할 수 있나요?

아니요, 이모지가 기본 다국어 평면 밖에 있다면(대부분의 최신 이모지가 그렇습니다) 불가능합니다 — 이런 경우 항상 두 개의 \uXXXX 시퀀스로 이루어진 서로게이트 쌍이 필요합니다.

아티클: 인코딩

Base64: 인코딩이 필요한 이유와 작동 방식

Base64가 바이너리 데이터를 ASCII 텍스트로 바꾸는 방법과 실제로 언제 필요한지.

Base32: Base64와 다른 점과 더 편리한 경우

대소문자를 구분하지 않는 Base32 알파벳과 Base64보다 편리한 상황.

URL Encode/Decode: 링크에서의 퍼센트 인코딩

주소와 매개변수의 특수 문자가 %XX 시퀀스로 바뀌는 과정.

HTML Entities: 특수 문자를 안전하게 표시하는 방법

< > & 문자를 이스케이프해야 하는 이유와 이것이 마크업 손상을 막는 방법.

JWT: 토큰 구조와 JWT를 "디코딩"한다는 것의 의미

JWT의 header, payload, signature와, 디코딩이 서명 검증과 다른 이유.

ROT13과 시저 암호: 단순한 문자 치환

13글자 이동이 ROT13을 자기 역함수로 만드는 이유와 오늘날에도 쓰이는 이유.

Punycode: 국제화 도메인이 DNS에서 작동하는 방식

라틴 문자가 아닌 문자를 포함한 도메인이 xn-- 접두사가 붙은 ASCII 형식으로 바뀌는 과정.

모스 부호: 텍스트가 점과 선으로 바뀌는 원리

문자를 점과 선으로 인코딩하는 원리와 모스 부호가 오늘날 어디에 쓰이는지.

Data URI: 이미지를 코드에 직접 삽입해야 할 때

Data URI가 파일 내용을 HTML이나 CSS에 직접 삽입하는 방식과 그럴 만한 가치가 있는 경우.

Gzip + Base64: 텍스트로 전송하기 위한 데이터 압축

압축된 바이너리 데이터를 텍스트 필드에 넣기 전에 Base64로도 인코딩하는 이유.

XML Entities: XML 문서에서 문자 이스케이프하기

이것이 없으면 파싱 중 문서가 깨지는, XML의 다섯 가지 필수 엔티티.