월요일, 4월 22

Base64 인코딩 디코딩시 주의점


http://support.microsoft.com/kb/323489/ko

Base64 주의사항.

"캐리지 리턴/줄 바꿈(CRLF) 문자가 출력 스트림에 삽입되어 줄 길이를 76자 이하로 유지합니다."



인코딩시 인코딩 된 문자열이 76자가 넘으려고 하면 "\n" 개행문자를 삽입합니다.

장문의 Text 를 다룰 시에는 문제가 될 것이 아니지만, 개행문자를 기반으로 한 인자값 전달 등의 경우에 문제가 될 여지가 있습니다.

Android에서 Base64 인코딩 시에 개행문자를 삽입하지 않는 옵션은 NO_WRAP입니다.


byte[] data = txt.getBytes("UTF-8");
return Base64.encodeToString(data, Base64.NO_WRAP );

이런 형식으로 사용하시면 됩니다.