-
Java - URL 인코딩 디코딩 예제Java 2025. 5. 16. 17:53반응형
웹 개발을 하다 보면 종종 URL에 한글이나 특수 문자를 포함해야 할 때가 있습니다.
이 때 사용하는 것이 바로 URL 인코딩(encoding)입니다.
Java에서는 java.net.URLEncoder와 java.net.URLDecoder 클래스를 사용하면 URL 인코딩과 디코딩을 간단하게 처리할 수 있습니다.
URL 인코딩이란?
URL에 포함할 수 없는 문자(예: 한글, 공백, 특수문자)를
%
와 숫자 조합으로 바꾸는 작업입니다.예시:
- 공백 →
%20
(또는+
) - 한글 →
%ED%95%9C%EA%B8%80
- : →
%3A
기본 사용법
import java.net.URLEncoder; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; public class UrlEncodingExample { public static void main(String[] args) throws Exception { String original = "한글 테스트 / 공백 : 특수문자 !@#"; // 인코딩 String encoded = URLEncoder.encode(original, StandardCharsets.UTF_8.toString()); System.out.println("Encoded: " + encoded); // 디코딩 String decoded = URLDecoder.decode(encoded, StandardCharsets.UTF_8.toString()); System.out.println("Decoded: " + decoded); } }
출력 결과
Encoded: %ED%95%9C%EA%B8%80+%ED%85%8C%EC%8A%A4%ED%8A%B8+%2F+%EA%B3%B5%EB%B0%B1+%3A+%ED%8A%B9%EC%88%98%EB%AC%B8%EC%9E%90+%21%40%23
Decoded: 한글 테스트 / 공백 : 특수문자 !@#인코딩 시 주의사항
- URLEncoder.encode()는 HTML form 전송 방식에 맞춰 공백을 +로 인코딩합니다.
- 브라우저나 HTTP 라이브러리에서는 공백을 %20으로 처리하는 것을 더 선호합니다.
- 필요한 경우 .replace("+", "%20")으로 보정할 수 있습니다.
String encodedForUrl = URLEncoder.encode(original, "UTF-8").replace("+", "%20");
URLDecoder는 언제 사용할까?
클라이언트에서 전송한 파라미터가 % 형태로 전달되었을 때 원래 문자열로 복원할 때 사용합니다.
String encodedValue = "%ED%95%9C%EA%B8%80"; String decodedValue = URLDecoder.decode(encodedValue, "UTF-8"); System.out.println(decodedValue); // 한글
결론
- Java에서는 URLEncoder와 URLDecoder로 간편하게 URL 인코딩을 처리할 수 있습니다.
- 웹 개발에서 쿼리 파라미터나 URL 문자열을 다룰 때 필수적인 기능입니다.
- 공백 처리(+ vs %20)에 유의해야 합니다.
반응형'Java' 카테고리의 다른 글
Java - Math.random() 보안 취약점 (1) 2025.06.01 Java - ArrayList addAll과 add의 차이점 (0) 2024.11.19 Java - 컬렉션 정렬 시 Null safe (0) 2024.06.21 Java - Set example code 사용법 (0) 2024.04.01 Java - ArrayList 초기화 (0) 2024.03.26 - 공백 →