URL 인코딩이란?
URL 인코딩은 URI에서 데이터를 안전하게 표현하기 위한 방식입니다.
왜 URL을 인코딩해야 하나요?
URL은 ASCII 문자만 허용하므로 특수 문자는 변환이 필요합니다.
- / 경로 구분자로 사용됩니다.
- ? 경로와 쿼리 문자열을 구분합니다.
- # URL 프래그먼트를 정의합니다.
- & 쿼리 매개변수를 구분합니다.
- 공백은 '+' 또는 '%20'으로 인코딩됩니다.
작동 방식
특수 문자를 '%'와 16진수 값으로 치환합니다.
URL에서 안전하게 사용하기 위해 문자열을 변환합니다.
URL 인코딩은 URI에서 데이터를 안전하게 표현하기 위한 방식입니다.
URL은 ASCII 문자만 허용하므로 특수 문자는 변환이 필요합니다.
특수 문자를 '%'와 16진수 값으로 치환합니다.
텍스트를 URL에 안전한 형태로 만들려면 Encode, %20 같은 퍼센트 인코딩을 읽을 수 있는 문자로 되돌리려면 Decode를 고르세요.
URL 전체, 쿼리 값, 또는 아무 텍스트나 입력란에 붙여넣으세요.
결과가 바로 나타납니다. 공백은 %20, 한글 같은 비 ASCII 문자는 UTF-8 바이트(예: "가"는 %EA%B0%80), &와 = 같은 예약 문자는 이스케이프됩니다.
결과를 복사해 링크, API 요청, 리다이렉트, 분석 파라미터에 사용하세요. 모드를 바꾸면 반대 방향도 확인할 수 있습니다.
"coffee & tea"를 검색하려면 q=coffee%20%26%20tea로 보내야 합니다. 그렇지 않으면 &에서 새 파라미터가 시작되어 서버는 "coffee "만 받습니다.
광고나 리다이렉트 URL에는 인코딩된 다른 URL이 들어 있는 경우가 많습니다. 디코딩하면 클릭하기 전에 실제 목적지를 알 수 있습니다.
한글 경로는 브라우저 내부에서 퍼센트 인코딩됩니다. https://example.com/%EA%B0%80 를 디코딩하면 "/가"처럼 읽을 수 있는 경로가 됩니다.
redirect_uri 파라미터는 완전히 인코딩해야 합니다. 여기서 인코딩하면 ?나 / 때문에 생기는 "redirect_uri mismatch" 오류를 막을 수 있습니다.
퍼센트 인코딩(RFC 3986)이라고도 하며, URL에서 허용되지 않거나 특별한 의미가 있는 문자를 바이트마다 %와 16진수 두 자리로 바꾸는 방식입니다.
%20은 URL 어디서나 유효합니다. +는 폼 데이터(application/x-www-form-urlencoded) 쿼리에서만 공백을 뜻하므로 %20이 더 안전합니다.
encodeURI는 / ? & = 처럼 URL 구조를 이루는 문자를 그대로 두므로 URL 전체용입니다. encodeURIComponent는 이것까지 이스케이프하므로 파라미터 값 하나에 씁니다.
% 뒤에 올바른 16진수 두 자리가 없거나 UTF-8로 유효하지 않은 바이트가 있기 때문입니다. 문자열이 잘렸거나 두 번 인코딩되지 않았는지 확인하세요.