예시
입력 (인코딩 모드)
안녕하세요 yutils!
출력
%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94%20yutils!
참고
한글은 UTF-8 3바이트로 인코딩되어 `%EC%95%88` 형태로 표현됩니다. `!` 같은 일부 예약문자도 안전을 위해 인코딩 — 디코드 시 원본 복원.
사용법 / 자주 묻는 질문
이런 경우 사용하세요
- URL 쿼리 파라미터에 한글·공백·특수문자 넣기 (검색어 등)
- API endpoint 경로에 한글 카테고리·이름을 안전하게 박기
- 다른 사이트의 인코딩된 URL 디코딩해서 무엇을 가리키는지 보기
- 리다이렉트 체인 분석 — `?redirect=` 같은 파라미터 내부 URL 디코드
- 이메일 본문에 박힌 긴 URL 의 인코딩 상태 확인
자주 묻는 질문
- Q.encodeURI 와 encodeURIComponent 차이는?
- A.encodeURI 는 전체 URL 을 인코딩하므로 `:`, `/`, `?`, `#` 같은 reserved character 는 유지합니다. encodeURIComponent 는 쿼리 값처럼 부분 인코딩용 — `:`, `/` 도 인코딩. 본 도구는 component 기준입니다.
- Q.space 는 `+` 인가 `%20` 인가?
- A.URL path 에서는 `%20`, application/x-www-form-urlencoded body 에서는 `+` 가 표준입니다. 본 도구는 path 기준(`%20`) — form data 에서는 추가 보정 필요.
- Q.이미 인코딩된 문자열을 또 인코딩하면?
- A.`%20` 이 `%2520` 처럼 이중 인코딩됩니다. 디버깅 중 자주 만나는 함정 — 이미 인코딩됐는지 먼저 확인하세요.
재미있는 사실
URL 의 percent-encoding (`%20` 같은 형태) 은 1994년 Tim Berners-Lee 의 RFC 1738 가 정식화했고, 2005년 RFC 3986 이 현재 표준입니다. `%XX` 는 그 바이트의 16진 값 — 다국어가 늘면서 UTF-8 + percent-encoding 이 사실상 표준 조합이 됐습니다.
RFC 3986 (2005)RFC 3986 의 'unreserved' 집합 — `A-Z a-z 0-9 - _ . ~` — 이 4가지 문자만 encoding 없이 안전하게 박을 수 있습니다. 옛 RFC 1738 의 unreserved 가 더 넓었는데 (`+ - $ . , !` 포함) 호환성 문제로 좁혀졌어요.
RFC 3986 — Unreserved Characters공백 처리에서 함정 — URL path 안에서는 `%20` 이지만, query string 의 `application/x-www-form-urlencoded` 인코딩에서는 `+` 로 박힙니다. `encodeURIComponent` 는 `%20` 만 쓰고, 폼 제출 시 브라우저가 `+` 로 따로 처리. 두 영역에서 다른 규칙이 30년째.
WHATWG URL — Form encoding
관련 도구
- Base64 인코딩 / 디코딩
텍스트를 Base64로 인코딩하거나 디코딩합니다. 브라우저에서 즉시 실행되며 서버로 데이터가 전송되지 않습니다.
- UUID / ULID 생성기
UUID v4(랜덤) · UUID v7(시간 순서, RFC 9562) · ULID를 브라우저에서 생성합니다.
- JWT 디코더
JWT(JSON Web Token)의 header와 payload를 디코딩하여 표시합니다. 서명 검증은 수행하지 않으며(공개키 필요), 토큰은 브라우저에서만 처리됩니다.
- JWT 생성기 (HMAC)
HS256/HS384/HS512(HMAC-SHA) 알고리즘으로 서명된 JWT를 생성합니다. payload·secret 모두 브라우저에서만 처리 — Web Crypto API 기반.
- SHA 해시
텍스트의 SHA-1·SHA-256·SHA-384·SHA-512 해시를 계산합니다. 브라우저의 Web Crypto API를 사용하며 데이터가 서버로 전송되지 않습니다.
- Hex 인코딩 / 디코딩
텍스트를 16진수로 인코딩하거나 디코딩합니다. UTF-8을 자동 처리하며 공백을 무시합니다.
- HTML 엔티티 인코딩 / 디코딩
HTML 특수 문자(&, <, >, ", ')를 엔티티로 인코딩하거나, 이름/숫자 엔티티를 텍스트로 디코딩합니다.
- 비밀번호 생성기
암호학적으로 안전한 비밀번호·토큰·랜덤 문자열·패스프레이즈를 생성하고 엔트로피를 표시합니다.
- 진수 변환기
BigInt 기반으로 큰 정수까지 2/8/10/16/36진수 변환. 0b/0o/0x 자동 감지.
- URL 파서
URL을 프로토콜·호스트·경로·쿼리·해시로 분해해 한눈에 보여줍니다 (읽기 전용).
- HMAC 생성기
Web Crypto API로 SHA-1/256/384/512 HMAC을 계산합니다. 서명·검증 키 기반.
- HMAC 검증기
주어진 HMAC 서명이 message + secret 으로 만든 값과 일치하는지 검증합니다. Web Crypto API + constant-time 비교.
- MD5 해시
텍스트의 MD5 해시를 계산합니다. 주의: MD5는 보안용으로 부적합 — 체크섬·레거시 호환에만 사용.
- Punycode (국제화 도메인)
한글·다국어 도메인을 Punycode(xn-- ASCII)로 상호 변환합니다. 브라우저 native URL 사용.
- HTTP 상태 코드
HTTP 상태 코드(1xx-5xx)를 검색·탐색합니다. 설명과 일반 사용 사례 포함.
- User-Agent 파서
User-Agent 문자열을 브라우저·OS·기기·엔진별로 분해합니다.
- Bcrypt 해시
Bcrypt로 비밀번호를 해시하거나 기존 해시와 평문을 검증합니다. salt rounds 조정 가능.
- 쿠키 파서
Cookie 또는 Set-Cookie 문자열을 표로 분해합니다. percent-encoded 값 복원 + Set-Cookie 속성(Path/Domain/Max-Age/SameSite/HttpOnly/Secure) 인식.
- IP / CIDR 계산기
IPv4 주소와 CIDR로 네트워크 주소·브로드캐스트·호스트 범위·서브넷 마스크·호스트 수를 계산합니다.
- cURL 빌더
URL·method·헤더·본문으로 cURL 명령을 만듭니다. JSON content-type 자동.