유니코드 디코더
유니코드 이스케이프와 텍스트를 상호 변환하고, 코드 포인트를 조회하고, 깨진 텍스트(mojibake)를 복구하세요. \uXXXX, \UXXXXXXXX, &#XXXX; 엔티티를 지원합니다. 모든 처리는 브라우저에서 이루어집니다.
결과가 여기에 표시됩니다...
문자 정보
| 문자 | 코드 포인트 | UTF-8 바이트 | HTML 엔티티 | CSS 이스케이프 | JS 이스케이프 |
|---|
유니코드 디코더 사용법
모드 선택
디코딩(이스케이프 → 텍스트) 또는 인코딩(텍스트 → 이스케이프) 모드를 선택하세요.
입력하기
모드에 따라 유니코드 이스케이프 또는 일반 텍스트를 붙여넣으세요.
변환하기
변환을 클릭하고 결과와 문자 상세 정보를 확인하세요.
유니코드 인코딩이란?
유니코드 인코딩을 사용하면 어떤 언어나 기호 체계의 문자든 다양한 형식으로 표현할 수 있습니다. 일반적인 형식: \uXXXX (JavaScript/JSON), &#NNNNN; (HTML 엔티티), U+XXXX (유니코드 코드 포인트). 이러한 인코딩은 텍스트가 여러 시스템 간에 안전하게 전송되고 표시되도록 보장합니다.
인코딩 형식
JavaScript (\uXXXX)
JSON과 JavaScript 문자열에서 사용
HTML 엔티티 (&#XXXX;)
HTML에서 특수 문자를 표현할 때 사용
CSS 이스케이프 (\XXXXXX)
CSS content와 식별자에서 사용
깨진 텍스트 복구 (Mojibake 수리)
한 문자 집합으로 인코딩된 텍스트를 다른 집합으로 디코딩하면 깨진 텍스트(mojibake)가 나타납니다. 가장 흔한 경우: UTF-8 바이트를 Windows-1252나 Latin-1로 읽어 "café"가 "café"로, "张三"이 "å¼ ä¸‰"로 변하는 것입니다. 위의 깨진 텍스트 복구 모드로 전환해 손상된 텍스트를 붙여넣으면, 디코더가 각 문자를 원시 바이트로 취급해 결과를 다시 UTF-8으로 디코딩하여 원래 문자를 재구성합니다.
흔한 깨진 텍스트 예시
| 깨짐 | 복구됨 | 원인 |
|---|---|---|
| café | café | UTF-8 → Latin-1 |
| å¼ ä¸‰ | 张三 | UTF-8 → Latin-1 |
| “hi†| “hi” | UTF-8 → double-encoded |
| ü ö ñ | ü ö ñ | UTF-8 → Windows-1252 |
| �� | � � | 바이트 이미 손실 (U+FFFD) |
자신의 앱에서 mojibake를 막으려면 인코딩을 항상 명시적으로 선언하세요: HTML에 <meta charset="UTF-8">을 포함하고, Content-Type: text/html; charset=utf-8 같은 HTTP 헤더를 설정하고, 데이터베이스와 연결에서 일관되게 UTF-8을 사용하세요.
UTF-8 vs UTF-16 vs UTF-32 비교
| UTF-8 | UTF-16 | UTF-32 | |
|---|---|---|---|
| 인코딩 단위 | 8 bit | 16 bit | 32 bit |
| A (U+0041) | 41 | 00 41 | 00 00 00 41 |
| é (U+00E9) | C3 A9 | 00 E9 | 00 00 00 E9 |
| 中 (U+4E2D) | E4 B8 AD | 4E 2D | 00 00 4E 2D |
| 🎉 (U+1F389) | F0 9F 8E 89 | D8 3C DF 89 | 00 01 F3 89 |
| 가장 적합한 용도 | 웹, JSON, API — ASCII 호환 및 간결 | Java, JavaScript, C#의 메모리 내 텍스트 | 직접 코드 포인트 접근, 실무에서는 드묾 |
자주 쓰는 유니코드 코드 포인트
자주 조회되는 문자의 빠른 참조: 문장 부호, 통화 기호, 악센트 문자, 수학 기호와 그 U+XXXX 코드 포인트.
문장 부호 및 기호
| “U+201C | ”U+201D | ‘U+2018 | ’U+2019 |
| –U+2013 | —U+2014 | …U+2026 | U+A0 |
| ©U+A9 | ®U+AE | ™U+2122 | °U+B0 |
통화 기호
| €U+20AC | £U+A3 | ¥U+A5 | ₹U+20B9 |
| ¢U+A2 | ₽U+20BD | ₩U+20A9 | ฿U+E3F |
악센트 문자
| éU+E9 | èU+E8 | êU+EA | üU+FC |
| öU+F6 | ñU+F1 | åU+E5 | øU+F8 |
| çU+E7 | ßU+DF | ąU+105 | žU+17E |
수학 및 화살표
| ±U+B1 | ×U+D7 | ÷U+F7 | ≈U+2248 |
| ≠U+2260 | ≤U+2264 | ≥U+2265 | →U+2192 |
| ∞U+221E | ∑U+2211 | √U+221A | µU+B5 |
자주 묻는 질문
이 도구는 디코딩에 \uXXXX (BMP), \UXXXXXXXX (전체 유니코드), &#DDDD; (10진 HTML 엔티티), &#xHHHH; (16진 HTML 엔티티), U+XXXX (코드 포인트 표기)를 지원합니다.
UTF-8은 각 유니코드 코드 포인트를 1~4바이트로 인코딩합니다. ASCII 문자(U+0000~U+007F)는 1바이트, 라틴 및 기타 일반 문자는 2바이트, 대부분의 CJK 문자는 3바이트, 이모지와 희귀 문자는 4바이트를 사용합니다.
\uXXXX는 16진수 4자리를 사용하며 기본 다국어 평면(U+0000~U+FFFF)의 문자를 표현할 수 있습니다. \UXXXXXXXX는 16진수 8자리를 사용하며 BMP를 넘어서는 문자를 포함한 모든 유니코드 문자를 표현할 수 있습니다.
이것은 mojibake의 징후입니다: UTF-8 바이트가 Windows-1252/Latin-1로 디코딩된 것입니다. "é"는 "é"의 두 UTF-8 바이트(0xC3 0xA9)가 두 개의 별도 문자로 표시됨을 뜻합니다 - 깨진 텍스트 복구 모드로 수리하세요. "�"는 U+FFFD로, 바이트가 이미 유효하지 않을 때 만들어지는 대체 문자입니다 - 그 정보는 손실되어 복구할 수 없습니다.
UTF-8은 문자를 1~4바이트로 인코딩하며 완전히 ASCII 호환되어 웹, JSON, 대부분의 API의 기본값입니다. UTF-16은 문자를 2 또는 4바이트로 인코딩하고(U+FFFF를 넘는 문자에 서로게이트 쌍 사용) JavaScript, Java, Windows가 내부적으로 사용합니다. 웹의 대부분 텍스트에는 UTF-8이 더 작고 안전합니다.
코드 포인트는 유니코드 표준이 문자에 할당한 숫자입니다(e-acute는 U+00E9); 코드 유닛은 인코딩이 사용하는 저장 단위입니다. UTF-8 코드 유닛은 8비트 바이트라 U+00E9에 두 개가 들고 - UTF-16 코드 유닛은 16비트라 U+FFFF를 넘는 문자에 두 개가 필요합니다(서로게이트 쌍). JavaScript 문자열은 UTF-16이므로 'hello'.length는 5지만 이모지의 .length는 2입니다.
같아 보이는 문자가 여러 바이트 시퀀스를 가질 수 있습니다: e-acute를 하나의 조합 완성 문자(NFC)로, 또는 e와 결합 악센트(NFD)로 표현할 수 있습니다. NFC는 합치고 NFD는 분해하며, NFKC/NFKD는 여기에 호환성 문자(전각 형식, 합자)까지 접습니다. 정규화 없이 사용자 입력을 비교하거나 해시하면 중복 계정과 조회 실패의 고전적 원인이 됩니다 - fi 합자 vs f+i.
바이트 순서 표식은 스트림 시작부에 인코딩된 U+FEFF(UTF-8에서 EF BB BF)로 인코딩을 알립니다. 편집기는 보통 이를 숨기지만, 하위 스트림에서는 보이지 않는 첫 문자가 됩니다: CSV 헤더에 유령 키가 생기고, JSON 파싱이 낯선 토큰에서 실패하고, PHP 세션이 헤더 전에 이를 출력합니다. UTF-8은 바이트 순서 모호성이 없어 BOM이 필요 없습니다 - 없이 저장하세요.
관련 도구
권위 있는 참고 자료
이 도구의 기반이 되는 일차 자료 — 전달 요약이 아니라 공식 표준과 사양입니다.