728x90
org.apache.commons.codec.binary.Base64 클래스의 encodeBase64String() 메서드를 이용하여 인코딩을 하는경우 특정 길이가 넘어가면 "+" 개행문자가 붙게 된다.
이를 해결하기 위해 여러가지 방법이 있겠지만 두가지 방법을 통해 해결했다.
1. + 문자 %2B로 치환
String str = "http://localhost:8080/test.do?param=apple+banana";
str = StringUtils.replace(str, "+", "%2B");
// 받는 입장에서는 반대로 치환을 해줘야한다
// StringUtils.replace(str, "%2B", "+");
System.out.println(str);
- 결과값 : http://localhost:8080/test.do?param=apple%2Bbanana
2. UTF-8로 인코딩
String str = "http://localhost:8080/test.do?param=apple+banana";
str = URLEncoder.encode(str, "UTF-8");
// 받는 입장에서는 디코딩을 해줘야한다
// URLDecoder.decode(str, "UTF-8");
System.out.println(str);
- 결과값 : http://localhost:8080/test.do?param=apple%2Bbanana
728x90
'JAVA > 코딩' 카테고리의 다른 글
[JAVA] HttpURLConnection 사용하기 (0) | 2021.08.27 |
---|---|
[JAVA] StringUtils의 isBlank와 isEmpty 차이 (0) | 2021.04.01 |
[JAVA] mkdir mkdirs 차이 (1) | 2021.03.23 |
[JAVA] 날짜 계산하기(더하기, 빼기 등) (2) | 2021.03.22 |
Spring @PostMapping @GetMapping @PatchMapping @PutMapping @DeleteMapping (0) | 2021.02.25 |