텍스트와 유니코드/HTML 엔티티 간 상호 변환
HTML에서 특수문자 표시를 위한 엔티티 변환
문자열 인코딩 및 이스케이프 처리
텍스트 데이터의 인코딩 문제 해결
보이지 않는 문자 확인 및 분석
유니코드(Unicode)는 전 세계 모든 문자를 하나의 통일된 체계로 표현하기 위한 국제 표준입니다. 한글, 영문, 한자, 아랍어, 이모지 등 140만 개 이상의 문자에 고유한 코드 포인트(U+XXXX)를 부여합니다. 현재 유니코드 15.0 기준으로 149,813개의 문자가 정의되어 있습니다.
UTF-8은 가변 길이 인코딩으로 ASCII 문자는 1바이트, 한글은 3바이트로 표현합니다. 웹과 리눅스 환경에서 가장 널리 사용되며 ASCII와 하위 호환됩니다. UTF-16은 대부분의 문자를 2바이트로 표현하며 Windows 내부, Java, JavaScript의 문자열이 이 방식을 사용합니다.
이모지는 유니코드의 보조 다국어 평면(Supplementary Multilingual Plane)에 위치하며 U+1F600 이상의 코드 포인트를 사용합니다. UTF-16에서는 서로게이트 쌍(Surrogate Pair) 두 개로 표현되고, UTF-8에서는 4바이트로 인코딩됩니다. 일부 이모지는 ZWJ(Zero Width Joiner, U+200D)로 여러 이모지를 결합한 시퀀스입니다.
완성형 한글 음절은 U+AC00(가)부터 U+D7A3(힣)까지 11,172자가 배당되어 있습니다. 한글 자모(자음/모음 낱자)는 U+1100~U+11FF 범위에 위치합니다. 한글은 초성, 중성, 종성의 조합으로 이루어지며 유니코드에서 이 구조를 모두 지원합니다.
유니코드가 등장하기 전에는 각 나라마다 서로 다른 문자 인코딩 방식을 사용했습니다. 영문권은 ASCII(128자), 한국은 EUC-KR, 일본은 Shift-JIS, 중국은 GB2312 등 수백 가지 인코딩이 혼재했습니다. 서로 다른 인코딩 시스템 간 데이터 교환 시 글자가 깨지는 문제(모지바케)가 빈번하게 발생했습니다.
1987년 Xerox와 Apple 엔지니어들이 유니코드 프로젝트를 시작했고, 1991년 유니코드 1.0이 발표되었습니다. 현재 유니코드 컨소시엄에는 Apple, Google, Microsoft, IBM 등 주요 기술 기업들이 참여하고 있습니다. 유니코드는 ISO/IEC 10646과 동기화되어 국제 표준(ISO)으로도 채택되었습니다.
HTML5는 UTF-8을 기본 인코딩으로 권장하며, 대부분의 현대 웹사이트는 UTF-8을 사용합니다. JavaScript의 문자열은 내부적으로 UTF-16으로 저장되며, encodeURIComponent() 함수는 UTF-8 인코딩을 기반으로 URL 인코딩을 수행합니다. 데이터베이스도 utf8mb4(MySQL) 등 유니코드 인코딩을 기본으로 설정하는 추세입니다.