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