인코딩

URL Encode/Decode

URL 인코딩 및 디코딩 — 링크와 쿼리 파라미터에서 이스케이프해야 하는 문자.

URL encoding (percent-encoding) replaces characters that aren't allowed in a URL — spaces, non-Latin letters, special characters — with %XX sequences, where XX is the hex code of the byte. This keeps links and query parameters from getting mangled in transit.

How to use it

Common uses

Things to keep in mind

Encode parameter values, not the whole URL at once — otherwise you'll also encode the separators you need (:, /, ?, &).

JavaScript's encodeURIComponent and encodeURI encode different character sets — the former is meant specifically for parameter values.

이 도구에 대한 아티클: URL Encode/Decode: 링크에서의 퍼센트 인코딩

자주 묻는 질문

URL 인코딩(퍼센트 인코딩)은 언제 필요한가요?

URL의 쿼리 파라미터나 경로에 공백, 한글, &, = 같은 특수 문자를 넣을 때 %XX 형식으로 이스케이프해야 합니다. 그렇지 않으면 링크가 깨지거나 파라미터가 잘못 해석될 수 있습니다.

URL 인코딩과 URL-safe Base64는 같은 건가요?

아니요, 서로 다른 인코딩입니다. URL 인코딩은 특수 문자를 %XX로 이스케이프하는 방식이고, URL-safe Base64는 +와 /를 -와 _로 바꾼 Base64 변형입니다. 이 도구는 퍼센트 인코딩만 다룹니다.

컴포넌트와 URI 모드는 어떤 차이가 있나요?

컴포넌트 모드는 쿼리 파라미터 값처럼 URL의 한 조각을 인코딩할 때 쓰며 &, =, / 같은 문자까지 이스케이프합니다. URI 모드는 URL 전체를 대상으로 하며 :, /, ? 등 URL 구조에 필요한 문자는 그대로 둡니다.

이중 인코딩이란 무엇이고 어떻게 알아볼 수 있나요?

이미 인코딩된 문자열을 한 번 더 인코딩하는 실수로, % 기호 자체가 %25로 변환되어 %20이 %2520이 됩니다. 디코딩 결과에 %25XX 형태의 시퀀스가 보인다면 이 문제의 징후입니다.

공백이 어떤 때는 +로, 어떤 때는 %20으로 인코딩되나요?

공백을 +로 표현하는 것은 폼과 쿼리 문자열에서 쓰이는 application/x-www-form-urlencoded 형식입니다. %20은 RFC 3986의 표준 percent-encoding으로, URL의 어느 부분에서든 올바르게 사용할 수 있습니다.

아티클: 인코딩

Base64: 인코딩이 필요한 이유와 작동 방식

Base64가 바이너리 데이터를 ASCII 텍스트로 바꾸는 방법과 실제로 언제 필요한지.

Base32: Base64와 다른 점과 더 편리한 경우

대소문자를 구분하지 않는 Base32 알파벳과 Base64보다 편리한 상황.

HTML Entities: 특수 문자를 안전하게 표시하는 방법

< > & 문자를 이스케이프해야 하는 이유와 이것이 마크업 손상을 막는 방법.

JWT: 토큰 구조와 JWT를 "디코딩"한다는 것의 의미

JWT의 header, payload, signature와, 디코딩이 서명 검증과 다른 이유.

Unicode Escape: \uXXXX 시퀀스의 의미

JSON과 JS 문자열에 나타나는 \u0041 같은 시퀀스가 어디서 오는지, 무엇을 의미하는지.

ROT13과 시저 암호: 단순한 문자 치환

13글자 이동이 ROT13을 자기 역함수로 만드는 이유와 오늘날에도 쓰이는 이유.

Punycode: 국제화 도메인이 DNS에서 작동하는 방식

라틴 문자가 아닌 문자를 포함한 도메인이 xn-- 접두사가 붙은 ASCII 형식으로 바뀌는 과정.

모스 부호: 텍스트가 점과 선으로 바뀌는 원리

문자를 점과 선으로 인코딩하는 원리와 모스 부호가 오늘날 어디에 쓰이는지.

Data URI: 이미지를 코드에 직접 삽입해야 할 때

Data URI가 파일 내용을 HTML이나 CSS에 직접 삽입하는 방식과 그럴 만한 가치가 있는 경우.

Gzip + Base64: 텍스트로 전송하기 위한 데이터 압축

압축된 바이너리 데이터를 텍스트 필드에 넣기 전에 Base64로도 인코딩하는 이유.

XML Entities: XML 문서에서 문자 이스케이프하기

이것이 없으면 파싱 중 문서가 깨지는, XML의 다섯 가지 필수 엔티티.