U+유니코드 변환
유니코드 이스케이프와 텍스트 간 변환
유니코드 완벽 이해 가이드
유니코드(Unicode)는 전 세계 모든 문자를 하나의 표준으로 통일한 국제 문자 집합입니다. 한글, 중국어, 아랍어, 이모지까지 포함한 140만 개 이상의 코드 포인트를 정의합니다. 웹 개발·데이터 처리에서 유니코드를 올바르게 다루는 것은 국제화(i18n)의 기초입니다.
코드 포인트·UTF-8·UTF-16 핵심 정리
코드 포인트란?
각 문자에 할당된 고유 번호를 코드 포인트라 합니다. U+XXXX 표기를 사용하며, 예를 들어 한(韓)은 U+D55C, 😀는 U+1F600입니다.
인코딩 방식 비교
| 인코딩 | ASCII | 한글 | 이모지 | 주요 사용처 |
|---|---|---|---|---|
| UTF-8 | 1 byte | 3 bytes | 4 bytes | 웹, 파일시스템 |
| UTF-16 | 2 bytes | 2 bytes | 4 bytes | JavaScript 내부 |
| UTF-32 | 4 bytes | 4 bytes | 4 bytes | 내부 처리 |
자주 쓰는 이스케이프 형식
- \uXXXX: JavaScript·JSON (BMP 범위, 4자리)
- \UXXXXXXXX: Python (전체 범위, 8자리)
- &#XXXXX; / &#xXXXX;: HTML 엔티티
- \XXXX: CSS content 속성
- %XX: URL 인코딩 (퍼센트 인코딩)
이모지와 서로게이트 페어
U+FFFF를 초과하는 이모지(😀 = U+1F600)는 UTF-16에서 두 개의 서로게이트 쌍으로 표현됩니다: 😀. JavaScript에서 codePointAt()과 String.fromCodePoint()을 사용하면 서로게이트 없이 올바르게 처리할 수 있습니다.
실전 예시: JavaScript 소스에서 비 ASCII 안전 처리
// 한글 문자열을 유니코드 이스케이프로 "안녕" → "\uC548\uB155" // JavaScript에서 이모지 코드 포인트 확인 "😀".codePointAt(0).toString(16) // → "1f600" String.fromCodePoint(0x1F600) // → "😀"