JAVA/코딩
[JAVA] Base64 인코딩시 개행문자 들어가는 현상
으악꿈
2021. 3. 30. 11:03
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