인코딩·디코딩
URL·Base64·HTML 엔티티를 서로 바꿉니다. 한글이 들어가도 깨지지 않게 UTF-8로 처리합니다.
인코딩 · 디코딩
붙여넣기
형식을 고르면 바로 변환됩니다
원문 → 변환된 형태
바이너리·텍스트를 ASCII 문자로. 한글은 UTF-8로 바꾼 뒤 변환합니다
사용법
- 원문을 붙여넣고 형식을 고르면 바로 변환됩니다.
- 되돌리려면 방향을 디코딩으로 바꾸거나, 결과 아래 결과로 되돌리기를 누르세요. 방향이 함께 뒤집힙니다.
- 쿼리 값 하나를 감쌀 때는 URL (값), 주소 전체를 감쌀 때는 URL (주소 전체)입니다.
- 바이트 크기 변화가 위에 표시되므로 전송량이 얼마나 늘어나는지 볼 수 있습니다.
형식별로 언제 쓰나
Base64는 바이너리를 텍스트만 다룰 수 있는 곳에 실어 보낼 때 씁니다. 메일 첨부, 데이터 URL, JSON 안의 이미지가 대표적입니다. 세 바이트를 네 글자로 바꾸므로 크기가 약 33% 늘어납니다. 암호가 아니라는 점이 중요합니다. 누구나 즉시 되돌릴 수 있습니다.
URL 인코딩은 주소에 쓸 수 없는 문자를 %와 16진수 두 자리로 바꿉니다. 한글 한 글자는 UTF-8에서 3바이트라 %EA%B0%80처럼 아홉 글자가 됩니다. 값을 감쌀 때와 주소 전체를 감쌀 때 함수가 달라, 주소 전체를 값 방식으로 감싸면 슬래시까지 인코딩되어 링크가 깨집니다.
HTML 엔티티는 <·>·&·따옴표를 글자로 보이게 합니다. 사용자 입력을 화면에 그대로 출력할 때 이 처리를 하지 않으면 입력에 담긴 스크립트가 실행되는 취약점이 생깁니다.
유니코드 이스케이프는 자바스크립트 문자열에 넣을 형태입니다. 한글은 \\uD55C 같은 네 자리로, 이모지처럼 큰 값은 \\u{1F642} 형태로 바꿉니다. 이모지를 반쪽으로 자르지 않도록 코드 포인트 단위로 처리합니다.
자주 묻는 질문
- Base64로 바꾸면 암호화가 되나요?
- 아닙니다. Base64는 누구나 되돌릴 수 있는 인코딩일 뿐 암호가 아닙니다. 바이너리 데이터를 텍스트로만 다룰 수 있는 곳(메일 첨부, 데이터 URL, JSON 안)에 실어 보내려고 쓰는 형식입니다. 비밀번호나 개인정보를 Base64로 감춰 두는 것은 보호가 되지 않습니다.
- 한글이 왜 Base64에서 오류가 나나요?
- 브라우저의 기본 함수(btoa)가 0~255 범위의 문자만 받기 때문입니다. 한글은 그 범위를 넘어 그대로 넣으면 실패합니다. 이 도구는 한글을 UTF-8 바이트로 바꾼 뒤 변환하므로 정상 동작하고, 되돌릴 때도 UTF-8로 해석합니다.
- URL 인코딩에 두 가지가 있는 이유는?
- 감싸는 범위가 다릅니다. "값"은 encodeURIComponent로 감싸야 &나 =가 들어가도 안전하고, "주소 전체"는 encodeURI를 써야 /와 ?가 그대로 남아 링크가 살아 있습니다. 주소 전체를 값 방식으로 감싸면 https%3A%2F%2F처럼 되어 링크가 깨집니다.
- HTML 엔티티는 언제 쓰나요?
- 코드나 태그를 화면에 글자 그대로 보여줄 때 씁니다. <b>를 그대로 두면 브라우저가 굵게 표시하는 명령으로 읽지만, <b>로 바꾸면 글자로 보입니다. 사용자 입력을 화면에 그대로 뿌릴 때 이 처리를 빠뜨리면 스크립트 삽입 취약점이 생깁니다.
- 입력한 내용이 서버로 가나요?
- 가지 않습니다. 브라우저 안에서만 변환하며 페이지를 새로 고치면 사라집니다. 토큰이나 응답 데이터를 붙여넣어도 밖으로 나가지 않지만, 화면이 노출되는 환경에서는 주의하세요.
이 도구는 브라우저 안에서만 계산하며 입력값을 서버로 보내지 않습니다. 분류: 개발 · 마지막 수정 2026-09-08