Android에서 Base64 URL safe encode

Base64로 인코딩된 문자열을 URL에 담아서보내는 경우가 있다.

이 때 URL에서 사용되는 +, / 문자를 -, _로 치환시키는 등의 처리를 하게 되는데 이런 방식이 Base64 URL Encoding이다.

Java에서는 Java 8부터 API로 제공된다.

https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html

java.util.Base64 클래스 getUrlEncoder() 메서드를 호출해서 Base64.Encoder 객체를 가져오는 방법으로 사용한다.

안드로이드에서는 API 26부터 지원된다.

https://developer.android.com/reference/java/util/Base64.html

그렇다면 min sdk 버전이 26 미만이면 외부 라이브러리를 써야하는 걸까?

사실 안드로이드는 API 8부터 별도의 패키지(android.util)로 Base64 클래스를 제공해왔다.

https://developer.android.com/reference/android/util/Base64.html

encode/encodeToString 메서드를 호출할 때 URL_SAFE 플래그를 지정하면 URL safe encoding 문자열을 얻을 수 있다.

Leave a Comment

Your email address will not be published. Required fields are marked *