Burt.K

코코아를 좋아하는 프로그래머입니다 ;)

URL 인코딩

URL을 인코딩할 때 아래와 같이 URLEncoder를 많이 사용한다. 그러나 귀차니즘으로 전체 URL 을 한번에 인코딩할 때 아래와 같이 http:// 등이 인코딩되어 원하는 결과가 아닐 경우가 있다.

$ kotlinc
>>> import java.net.URLEncoder
>>> URLEncoder.encode("http://www.google.com", "UTF-8")
http%3A%2F%2Fwww.google.com

이럴 경우에는 Android 의 Uri 클래스를 사용하면 원하는 결과를 얻을 수 있다. Uri의 encode 메서드를 사용할 때, 인코딩에서 제외할 문자를 정해줄 수 있기 때문이다.

import android.net.Uri;
private static final String ALLOWED_URI_CHARS = "@#&=*+-_.,:!?()/~'%";
String encodedUri = Uri.("http://www.google.com", ALLOWED_URI_CHARS);
http://www.google.com

 

← Double 형 데이터 주고 받기
Float 데이터 주고 받기 →