유니코드 이스케이프 변환
로그·JSON에 홍라처럼 보이는 글자를 붙여넣고 ‘풀기’를 누르면 한글로 돌아와요.
유니코드 이스케이프란
유니코드는 세상의 모든 글자에 번호(코드 포인트)를 붙인 표예요. ‘홍’은 U+D64D, ‘😀’는 U+1F600이에요. 프로그램 소스, JSON, 로그처럼 영어만 다루던 곳에 한글을 안전하게 넣으려고 이 번호를 홍 같은 ‘이스케이프’ 글자로 적는 경우가 많아요. 그래서 서버 응답이나 로그에서 한글이 홍라이프처럼 보이기도 해요.
형식별 차이
자바스크립트·자바·JSON·C#은 \uXXXX로 4자리만 써서, U+FFFF를 넘는 이모지는 서로게이트 쌍 두 개(😀)로 적어요. ES6 자바스크립트는 \u{1F600}, 파이썬·C는 \U0001F600(8자리)로 한 번에 적어요. CSS는 \D64D (뒤에 빈칸), HTML은 홍나 10진수 홍, 문서에서는 U+D64D로 적어요. %uD64D는 자바스크립트의 옛 escape() 함수 형식으로 표준 URL 인코딩이 아니에요(요즘 주소에는 UTF-8 %XX를 써요).
쓰는 방법
‘바꾸기’에서 형식을 고르면 입력한 글자를 바로 바꿔요. ‘영어·숫자는 그대로 두기’를 끄면 모든 글자를 이스케이프해요. ‘풀기’는 위 형식들이 한 글에 섞여 있어도 모두 찾아 원래 글자로 바꾸고, \n·\t도 줄바꿈·탭으로 바꿔요. 아래 표는 글자마다 코드 포인트, 10진수 번호, UTF-8 바이트(한글은 3바이트, 이모지는 4바이트), UTF-16 단위, 유니코드 블록 이름을 보여 줘서 ‘보이지 않는 글자’나 비슷하게 생긴 다른 글자를 찾을 때도 쓸 수 있어요.
결과는 파이썬의 unicode_escape 코덱과 json.dumps(ensure_ascii) 결과로 검증했어요. 모든 변환은 이 기기에서만 이뤄져요.
참고한 자료
자주 묻는 질문
한글이 홍처럼 나와요. 왜 그런가요?
JSON·프로그램이 영어 외 글자를 이스케이프해서 저장한 거예요. 내용은 같고, ‘풀기’로 한글을 볼 수 있어요.
이모지가 😀 두 개로 나와요.
U+FFFF를 넘는 글자는 UTF-16에서 두 단위(서로게이트 쌍)로 적기 때문이에요. ES6나 파이썬 형식을 고르면 하나로 적어요.
한글 자음 ‘ㄱ’과 ‘ᄀ’가 달라요.
키보드로 치는 ‘ㄱ’은 호환 자모(U+3131), 맥에서 나뉘는 ‘ᄀ’는 조합용 자모(U+1100)예요. 표의 ‘블록’에서 구분할 수 있어요.
함께 쓰면 좋은 도구
- HTML 엔티티 변환 (< & 인코딩·디코딩)< > & 같은 글자를 < > &로 바꾸고, 가 같은 엔티티를 원래 글자로 풀기
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- URL 인코딩·디코딩 (한글 주소 %EC 변환)한글 주소를 %EC%95%88 형식으로, 깨진 %주소를 한글로, 옛 EUC-KR 주소·검색어 파라미터 풀기
- 2진수 글자 변환 (텍스트 ↔ 01010 바이너리·16진수·8진수·10진수)한글·영어 글자를 01001000 같은 2진수, 16진수, 8진수, 10진수 바이트로 바꾸고, 0과 1로 된 글을 원래 글자로 풀기
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴
- Base64 인코딩·디코딩 (글자·파일 ↔ Base64)글자(한글 UTF-8)를 Base64로, Base64를 글자로, 파일·이미지를 data URI로, Base64를 파일로 저장