유니코드 디코더

유니코드 이스케이프와 텍스트를 상호 변환하고, 코드 포인트를 조회하고, 깨진 텍스트(mojibake)를 복구하세요. \uXXXX, \UXXXXXXXX, &#XXXX; 엔티티를 지원합니다. 모든 처리는 브라우저에서 이루어집니다.

인코딩 & 디코딩 문자 정보 클라이언트 측 처리
결과가 여기에 표시됩니다...

유니코드 디코더 사용법

1

모드 선택

디코딩(이스케이프 → 텍스트) 또는 인코딩(텍스트 → 이스케이프) 모드를 선택하세요.

2

입력하기

모드에 따라 유니코드 이스케이프 또는 일반 텍스트를 붙여넣으세요.

3

변환하기

변환을 클릭하고 결과와 문자 상세 정보를 확인하세요.

유니코드 인코딩이란?

유니코드 인코딩을 사용하면 어떤 언어나 기호 체계의 문자든 다양한 형식으로 표현할 수 있습니다. 일반적인 형식: \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 인코딩은 어떻게 작동하나요?

UTF-8은 각 유니코드 코드 포인트를 1~4바이트로 인코딩합니다. ASCII 문자(U+0000~U+007F)는 1바이트, 라틴 및 기타 일반 문자는 2바이트, 대부분의 CJK 문자는 3바이트, 이모지와 희귀 문자는 4바이트를 사용합니다.

\u와 \U의 차이는 무엇인가요?

\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과 UTF-16의 차이는 무엇인가요?

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.

BOM이란 무엇이고 왜 파일을 망가뜨리나요?

바이트 순서 표식은 스트림 시작부에 인코딩된 U+FEFF(UTF-8에서 EF BB BF)로 인코딩을 알립니다. 편집기는 보통 이를 숨기지만, 하위 스트림에서는 보이지 않는 첫 문자가 됩니다: CSV 헤더에 유령 키가 생기고, JSON 파싱이 낯선 토큰에서 실패하고, PHP 세션이 헤더 전에 이를 출력합니다. UTF-8은 바이트 순서 모호성이 없어 BOM이 필요 없습니다 - 없이 저장하세요.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}